Вопрос по чужому коду
- electroget
- Друг Кота
- Сообщения: 4651
- Зарегистрирован: Ср сен 30, 2020 16:51:47
- Откуда: РФ
Вопрос по чужому коду
Есть вот такой код (фрагмент кода управления цифровым потенциометром):
#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(); в этом коде?
#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(); в этом коде?
Re: Вопрос по чужому коду
скорее всего cli() - запрет прерываний.
- electroget
- Друг Кота
- Сообщения: 4651
- Зарегистрирован: Ср сен 30, 2020 16:51:47
- Откуда: РФ
Re: Вопрос по чужому коду
Вот ещё фрагмент этого кода:
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
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 раз.
Re: Вопрос по чужому коду
[uquote="electroget",url="/forum/viewtopic.php?p=4740569#p4740569"]Вот ещё фрагмент этого кода:[/uquote]
cl(); // сбросить на минимум (потенциометр)
up(50); // установить 50%
dw(25); // уменьшить на 25 %
как понял 1 шаг = 1 %
cl(); // сбросить на минимум (потенциометр)
up(50); // установить 50%
dw(25); // уменьшить на 25 %
как понял 1 шаг = 1 %
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1903
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: Вопрос по чужому коду
cl() - функция.
Предложенный источник инфо (найден по фрагменту):
X9Cxxx — электронный потенциометр (Arduino)
Код: Выделить всё
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: Вопрос по чужому коду
[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 можно вот так запросто объявлять какие угодно функции? Не знал.
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: Вопрос по чужому коду
Возможно. Главное, чтобы имя не совпадало, например, с именем служебной функции.
Функция с таким коротким именем - комментарий обязателен
.
А однострочная функция с таким количеством операторов в нем нечитабельна, но автор так решил. Для компилятора это то же самое.
Другая крайность: стиль CamelCase code - напр. 10 см функция, с 10 существительными, прилагательными и глаголами ...
напр. в STM32 SPL:
void ADC_ExternalTrigInjectedConvConfig(ADC_TypeDef* ADCx, uint32_t ADC_ExternalTrigInjecConv);
Так как не вижу далеко, долго читаем в очках на мониторе, пока не понимаем, что хотели сказать
.
Функция с таким коротким именем - комментарий обязателен
А однострочная функция с таким количеством операторов в нем нечитабельна, но автор так решил. Для компилятора это то же самое.
Другая крайность: стиль 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: Вопрос по чужому коду
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 наверно.
Понял, спасибо.
Не знал этого, так как не программист ни разу.
Добавлено 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);
Так как не вижу далеко, долго читаем в очках на мониторе, пока не понимаем, что хотели сказать
Для меня это всё другая планета. Про стили программирования я только слышал, а STM32 лишь на картинках видел. Я себе вообще не представляю как с ними люди мучаются. Лучше уж тогда какой-нибудь Raspberry Pi наверно.
Re: Вопрос по чужому коду
Лучше Sony Playstation. Сидишь, гамаешь и никаких мучений. 
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
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: Вопрос по чужому коду
В линухе гораздо проще, потому что "всë есть файл". И основная часть низкоуровневого кода за тебя уже написана. Да и ресурсов куда больше, чем 4к оперативки и 20к флеша…
Что до STM32, ничего сложного. Надо просто начинать с чтения документации, разбора сниппетов от ST и написания своих. А пользоваться всякой дрянью вроде SPL/HAL/opencm3 не стоит. А еще хуже - генерировать убогие портянки кода всякими "генераторами".
Ну, а аврку советую сменить на вменяемый микроконтроллер. И ни в коем случае не углубляться в "абдуринщичество". Иначе можно заработать "абдурину головного мозга" со всеми вытекающими.
Что до STM32, ничего сложного. Надо просто начинать с чтения документации, разбора сниппетов от ST и написания своих. А пользоваться всякой дрянью вроде SPL/HAL/opencm3 не стоит. А еще хуже - генерировать убогие портянки кода всякими "генераторами".
Ну, а аврку советую сменить на вменяемый микроконтроллер. И ни в коем случае не углубляться в "абдуринщичество". Иначе можно заработать "абдурину головного мозга" со всеми вытекающими.
Windows must die!
Re: Вопрос по чужому коду
[uquote="linux_rulezz",url="/forum/viewtopic.php?p=4751159#p4751159"]Иначе можно заработать "абдурину головного мозга" со всеми вытекающими.[/uquote]
Ардуино от плюсов чем отличается? Наличием фреймворка? Из за мозг то страдает?
Ардуино от плюсов чем отличается? Наличием фреймворка? Из за мозг то страдает?
- linux_rulezz
- Вымогатель припоя
- Сообщения: 589
- Зарегистрирован: Пн сен 15, 2025 08:43:23
- Откуда: Маленький СССР посреди шариатской республики
Re: Вопрос по чужому коду
Абдурина - это когда даже документацию не читают, а качают готовый говнокод из интернета.
Я не против плюсов на МК: без аллокаторов он очень хорош за счёт шаблонов, констэкспров и многого другого. Идеальный HAL для МК возможно написать исключительно на С++.
Но писать такую жесть, что вытворяют абдуринщики...
Загонять флоаты на 8-битку, их не умеющую; i2c ногодрыгом, аллокаторы, принтфы всякие... Да и сам подход: как будто у них там конкурс на самый бессмысленный код!
В общем, суровое такое поражение мозга бесконечной тупизной.
Я не против плюсов на МК: без аллокаторов он очень хорош за счёт шаблонов, констэкспров и многого другого. Идеальный HAL для МК возможно написать исключительно на С++.
Но писать такую жесть, что вытворяют абдуринщики...
Загонять флоаты на 8-битку, их не умеющую; i2c ногодрыгом, аллокаторы, принтфы всякие... Да и сам подход: как будто у них там конкурс на самый бессмысленный код!
В общем, суровое такое поражение мозга бесконечной тупизной.
Windows must die!
Re: Вопрос по чужому коду
[uquote="linux_rulezz",url="/forum/viewtopic.php?p=4751196#p4751196"]Абдурина - это когда даже документацию не читают, а качают готовый говнокод из интернета.[/uquote]
А потому что Ардуино - это массовость, это просто и доступно, это горы софта. Потому и популярно, и занимаются все кому не лень. Естественно, при такой массовости и таком уровне необдуманно занимающихся всегда будет много мусора и тупизны. Только ничто не мешает писать и с нормальным подходом.
А так да, куда ни плюнь, везде классы, флоаты, ногодрыг. Хотя, во многих случаях, заради простоты и это не имеет особого значения.
А потому что Ардуино - это массовость, это просто и доступно, это горы софта. Потому и популярно, и занимаются все кому не лень. Естественно, при такой массовости и таком уровне необдуманно занимающихся всегда будет много мусора и тупизны. Только ничто не мешает писать и с нормальным подходом.
А так да, куда ни плюнь, везде классы, флоаты, ногодрыг. Хотя, во многих случаях, заради простоты и это не имеет особого значения.
Re: Вопрос по чужому коду
[uquote="linux_rulezz",url="/forum/viewtopic.php?p=4751196#p4751196"]Абдурина - это когда даже документацию не читают, а качают готовый говнокод из интернета....
В общем, суровое такое поражение мозга бесконечной тупизной.[/uquote]
Такой отзыв про пользователей адуринки вызывает только соболезнование его написавшему.

В общем, суровое такое поражение мозга бесконечной тупизной.[/uquote]
Такой отзыв про пользователей адуринки вызывает только соболезнование его написавшему.
Re: Вопрос по чужому коду
Только проще от этого не станет.ПростоНуб писал(а):Не обязательно. Raspberry PI Pico (RP2040) вполне себе обходится без Linux
Написал участник форума с ником linux_rulezz.linux_rulezz писал(а):В линухе гораздо проще
И код для цифровых резисторов тоже написан и они винды как файл?linux_rulezz писал(а):потому что "всë есть файл". И основная часть низкоуровневого кода за тебя уже написана.
Или предлагаете писать драйвер (модуль) ядра чтобы работать с резисторами?
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Вопрос по чужому коду
[uquote="Мурик",url="/forum/viewtopic.php?p=4751469#p4751469"]Написал участник форума с ником linux_rulezz.
Явно предвзятое отношение к линю.
[/uquote] Это же вновь возродившийся Eddy_Em 
- linux_rulezz
- Вымогатель припоя
- Сообщения: 589
- Зарегистрирован: Пн сен 15, 2025 08:43:23
- Откуда: Маленький СССР посреди шариатской республики
Re: Вопрос по чужому коду
Мурик, прикинь, в линуксе уже давно есть готовые модули для цифровых потенциометров!
Набери в гуголе "linux digital potentiometer kernel module". А вы там со своим маздаем - как в каменном веке!
Набери в гуголе "linux digital potentiometer kernel module". А вы там со своим маздаем - как в каменном веке!
Windows must die!
Re: Вопрос по чужому коду
[uquote="linux_rulezz"]В линухе гораздо проще, потому что "всë есть файл". И основная часть низкоуровневого говнокода за тебя уже написана..[/uquote]linux_rulezz писал(а):Абдурина - это когда даже документацию не читают, а качают готовый говнокод из интернета.
ты не понимаеш, это другое
глаза баяца, руки из жопы, но я не здаюсь