Вопрос по чужому коду

Ардуинщики всех стран - объединяйтесь! В этом форуме, конечно.
Ответить
Аватара пользователя
electroget
Друг Кота
Сообщения: 4651
Зарегистрирован: Ср сен 30, 2020 16:51:47
Откуда: РФ

Вопрос по чужому коду

Сообщение electroget »

Есть вот такой код (фрагмент кода управления цифровым потенциометром):


#define CS 4
#define INC 5
#define UD 6
#define STEP 5

LiquidCrystal_I2C lcd(0x27, 20, 4);

volatile bool intFlag = false;
unsigned long delayFront;
unsigned long previousMillis;
unsigned long currentMillis;
const long interval;
int pop, dat = 0, dat_old;
bool w = 1;
volatile bool startDelay = false;

void setup() {
interrupts();
delayFront == 0;
Serial.begin(57600);
pinMode(2, INPUT);
pinMode(3, OUTPUT);
pinMode(CS, OUTPUT);
cl();
attachInterrupt(0, event, RISING);
}

void event() {
intFlag = true;
}


Что такое cl(); в этом коде?
Аватара пользователя
JackSmith
Потрогал лапой паяльник
Сообщения: 332
Зарегистрирован: Ср мар 09, 2016 08:07:41

Re: Вопрос по чужому коду

Сообщение JackSmith »

скорее всего cli() - запрет прерываний.
Аватара пользователя
electroget
Друг Кота
Сообщения: 4651
Зарегистрирован: Ср сен 30, 2020 16:51:47
Откуда: РФ

Re: Вопрос по чужому коду

Сообщение electroget »

Вот ещё фрагмент этого кода:

void cl() {
digitalWrite(UD, LOW);
for (int i = 0; i < 100; i++) {
digitalWrite(INC, LOW);
digitalWrite(INC, HIGH);
}
}
void up(byte data) {
digitalWrite(UD, HIGH);
for (int i = 0; i < data; i++) {
digitalWrite(INC, LOW);
digitalWrite(INC, HIGH);
}
}
void dw(byte data) {
digitalWrite(UD, LOW);
for (int i = 0; i < data; i++) {
digitalWrite(INC, LOW);
digitalWrite(INC, HIGH);
}
}


Пояснение к этому фрагменту кода.

блок void cl()... это выполнять все 100 шагов изменения сопротивления цифрового потенциометра.

блок void up... это увеличивать сопротивление потенциометра на количество шагов задаваемых переменной data
блок void dw.. это уменьшать сопротивление потенциометра на количество шагов задаваемых переменной data
Последний раз редактировалось electroget Пт авг 22, 2025 13:13:36, всего редактировалось 1 раз.
Аватара пользователя
JackSmith
Потрогал лапой паяльник
Сообщения: 332
Зарегистрирован: Ср мар 09, 2016 08:07:41

Re: Вопрос по чужому коду

Сообщение JackSmith »

[uquote="electroget",url="/forum/viewtopic.php?p=4740569#p4740569"]Вот ещё фрагмент этого кода:[/uquote]

cl(); // сбросить на минимум (потенциометр)
up(50); // установить 50%
dw(25); // уменьшить на 25 %

как понял 1 шаг = 1 %
veso74
Поставщик валерьянки для Кота
Сообщения: 1903
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: Вопрос по чужому коду

Сообщение veso74 »

cl() - функция.

Код: Выделить всё

void cl(){digitalWrite(UD,LOW);for(int i=0;i<100;i++){digitalWrite(INC,LOW);digitalWrite(INC,HIGH);}}
Предложенный источник инфо (найден по фрагменту):
X9Cxxx — электронный потенциометр (Arduino)
Аватара пользователя
electroget
Друг Кота
Сообщения: 4651
Зарегистрирован: Ср сен 30, 2020 16:51:47
Откуда: РФ

Re: Вопрос по чужому коду

Сообщение electroget »

[uquote="JackSmith",url="/forum/viewtopic.php?p=4740573#p4740573"][uquote="electroget",url="/forum/viewtopic.php?p=4740569#p4740569"]Вот ещё фрагмент этого кода:[/uquote]

cl(); // сбросить на минимум (потенциометр)
up(50); // установить 50%
dw(25); // уменьшить на 25 %

как понял 1 шаг = 1 %[/uquote]

Понял, спасибо.

Добавлено after 1 minute 25 seconds:
[uquote="veso74",url="/forum/viewtopic.php?p=4740574#p4740574"]cl() - функция.[/uquote]

Благодарю вас за информацию.
В языке Arduino C можно вот так запросто объявлять какие угодно функции? Не знал.
veso74
Поставщик валерьянки для Кота
Сообщения: 1903
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: Вопрос по чужому коду

Сообщение veso74 »

Возможно. Главное, чтобы имя не совпадало, например, с именем служебной функции.

Функция с таким коротким именем - комментарий обязателен :).
А однострочная функция с таким количеством операторов в нем нечитабельна, но автор так решил. Для компилятора это то же самое.

Другая крайность: стиль CamelCase code - напр. 10 см функция, с 10 существительными, прилагательными и глаголами ...

напр. в STM32 SPL:
void ADC_ExternalTrigInjectedConvConfig(ADC_TypeDef* ADCx, uint32_t ADC_ExternalTrigInjecConv);
Так как не вижу далеко, долго читаем в очках на мониторе, пока не понимаем, что хотели сказать :).
Последний раз редактировалось veso74 Пт авг 22, 2025 13:37:07, всего редактировалось 2 раза.
Аватара пользователя
electroget
Друг Кота
Сообщения: 4651
Зарегистрирован: Ср сен 30, 2020 16:51:47
Откуда: РФ

Re: Вопрос по чужому коду

Сообщение electroget »

veso74,

Понял, спасибо.
Не знал этого, так как не программист ни разу.

Добавлено after 35 minutes 5 seconds:
[uquote="veso74",url="/forum/viewtopic.php?p=4740580#p4740580"]Другая крайность: стиль CamelCase code - напр. 10 см функция, с 10 существительными, прилагательными и глаголами ...
напр. в STM32 SPL:
void ADC_ExternalTrigInjectedConvConfig(ADC_TypeDef* ADCx, uint32_t ADC_ExternalTrigInjecConv);
Так как не вижу далеко, долго читаем в очках на мониторе, пока не понимаем, что хотели сказать :).[/uquote]

Для меня это всё другая планета. Про стили программирования я только слышал, а STM32 лишь на картинках видел. Я себе вообще не представляю как с ними люди мучаются. Лучше уж тогда какой-нибудь Raspberry Pi наверно.
Аватара пользователя
smacorp
Друг Кота
Сообщения: 3472
Зарегистрирован: Вт окт 22, 2013 04:37:23
Откуда: Казань

Re: Вопрос по чужому коду

Сообщение smacorp »

Лучше Sony Playstation. Сидишь, гамаешь и никаких мучений. :roll:
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Вопрос по чужому коду

Сообщение Мурик »

electroget писал(а):Лучше уж тогда какой-нибудь Raspberry Pi наверно.
Думаете там будет проще?
Тоже писать код, но еще и с линью взаимодействовать нужно.
Аватара пользователя
ПростоНуб
Собутыльник Кота
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

Re: Вопрос по чужому коду

Сообщение ПростоНуб »

Не обязательно. Raspberry PI Pico (RP2040) вполне себе обходится без Linux :)
Аватара пользователя
linux_rulezz
Вымогатель припоя
Сообщения: 589
Зарегистрирован: Пн сен 15, 2025 08:43:23
Откуда: Маленький СССР посреди шариатской республики

Re: Вопрос по чужому коду

Сообщение linux_rulezz »

В линухе гораздо проще, потому что "всë есть файл". И основная часть низкоуровневого кода за тебя уже написана. Да и ресурсов куда больше, чем 4к оперативки и 20к флеша…
Что до STM32, ничего сложного. Надо просто начинать с чтения документации, разбора сниппетов от ST и написания своих. А пользоваться всякой дрянью вроде SPL/HAL/opencm3 не стоит. А еще хуже - генерировать убогие портянки кода всякими "генераторами".

Ну, а аврку советую сменить на вменяемый микроконтроллер. И ни в коем случае не углубляться в "абдуринщичество". Иначе можно заработать "абдурину головного мозга" со всеми вытекающими.
Windows must die!
OKF
Это не хвост, это антенна
Сообщения: 1385
Зарегистрирован: Вт июн 07, 2011 08:03:18

Re: Вопрос по чужому коду

Сообщение OKF »

[uquote="linux_rulezz",url="/forum/viewtopic.php?p=4751159#p4751159"]Иначе можно заработать "абдурину головного мозга" со всеми вытекающими.[/uquote]
Ардуино от плюсов чем отличается? Наличием фреймворка? Из за мозг то страдает?
Аватара пользователя
linux_rulezz
Вымогатель припоя
Сообщения: 589
Зарегистрирован: Пн сен 15, 2025 08:43:23
Откуда: Маленький СССР посреди шариатской республики

Re: Вопрос по чужому коду

Сообщение linux_rulezz »

Абдурина - это когда даже документацию не читают, а качают готовый говнокод из интернета.
Я не против плюсов на МК: без аллокаторов он очень хорош за счёт шаблонов, констэкспров и многого другого. Идеальный HAL для МК возможно написать исключительно на С++.
Но писать такую жесть, что вытворяют абдуринщики...
Загонять флоаты на 8-битку, их не умеющую; i2c ногодрыгом, аллокаторы, принтфы всякие... Да и сам подход: как будто у них там конкурс на самый бессмысленный код!

В общем, суровое такое поражение мозга бесконечной тупизной.
Windows must die!
OKF
Это не хвост, это антенна
Сообщения: 1385
Зарегистрирован: Вт июн 07, 2011 08:03:18

Re: Вопрос по чужому коду

Сообщение OKF »

[uquote="linux_rulezz",url="/forum/viewtopic.php?p=4751196#p4751196"]Абдурина - это когда даже документацию не читают, а качают готовый говнокод из интернета.[/uquote]
А потому что Ардуино - это массовость, это просто и доступно, это горы софта. Потому и популярно, и занимаются все кому не лень. Естественно, при такой массовости и таком уровне необдуманно занимающихся всегда будет много мусора и тупизны. Только ничто не мешает писать и с нормальным подходом.
А так да, куда ни плюнь, везде классы, флоаты, ногодрыг. Хотя, во многих случаях, заради простоты и это не имеет особого значения.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15542
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Вопрос по чужому коду

Сообщение BOB51 »

[uquote="linux_rulezz",url="/forum/viewtopic.php?p=4751196#p4751196"]Абдурина - это когда даже документацию не читают, а качают готовый говнокод из интернета....
В общем, суровое такое поражение мозга бесконечной тупизной.[/uquote]
8)
Такой отзыв про пользователей адуринки вызывает только соболезнование его написавшему.
:)
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Вопрос по чужому коду

Сообщение Мурик »

ПростоНуб писал(а):Не обязательно. Raspberry PI Pico (RP2040) вполне себе обходится без Linux
Только проще от этого не станет. :dont_know:
linux_rulezz писал(а):В линухе гораздо проще
Написал участник форума с ником linux_rulezz. :))) Явно предвзятое отношение к линю. :wink:
linux_rulezz писал(а):потому что "всë есть файл". И основная часть низкоуровневого кода за тебя уже написана.
И код для цифровых резисторов тоже написан и они винды как файл? :wink:
Или предлагаете писать драйвер (модуль) ядра чтобы работать с резисторами?
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Вопрос по чужому коду

Сообщение Аlex »

[uquote="Мурик",url="/forum/viewtopic.php?p=4751469#p4751469"]Написал участник форума с ником linux_rulezz. :))) Явно предвзятое отношение к линю. :wink:[/uquote] Это же вновь возродившийся Eddy_Em :)))
Аватара пользователя
linux_rulezz
Вымогатель припоя
Сообщения: 589
Зарегистрирован: Пн сен 15, 2025 08:43:23
Откуда: Маленький СССР посреди шариатской республики

Re: Вопрос по чужому коду

Сообщение linux_rulezz »

Мурик, прикинь, в линуксе уже давно есть готовые модули для цифровых потенциометров!
Набери в гуголе "linux digital potentiometer kernel module". А вы там со своим маздаем - как в каменном веке!
Windows must die!
Аватара пользователя
sc0rpy
Открыл глаза
Сообщения: 61
Зарегистрирован: Ср июн 18, 2025 07:20:55

Re: Вопрос по чужому коду

Сообщение sc0rpy »

linux_rulezz писал(а):Абдурина - это когда даже документацию не читают, а качают готовый говнокод из интернета.
[uquote="linux_rulezz"]В линухе гораздо проще, потому что "всë есть файл". И основная часть низкоуровневого говнокода за тебя уже написана..[/uquote]
ты не понимаеш, это другое :)))
глаза баяца, руки из жопы, но я не здаюсь
Ответить

Вернуться в «Arduino»