Например TDA7294

Форум РадиоКот • Просмотр темы - Вопрос по чужому коду
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Вт авг 26, 2025 21:54:29

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Вопрос по чужому коду
СообщениеДобавлено: Пт авг 22, 2025 12:32:21 
Друг Кота
Аватар пользователя

Карма: 5
Рейтинг сообщений: 61
Зарегистрирован: Ср сен 30, 2020 16:51:47
Сообщений: 4625
Откуда: РФ
Рейтинг сообщения: 0
Есть вот такой код (фрагмент кода управления цифровым потенциометром):


#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: Вопрос по чужому коду
СообщениеДобавлено: Пт авг 22, 2025 12:41:07 
Грызет канифоль
Аватар пользователя

Карма: 1
Рейтинг сообщений: 26
Зарегистрирован: Ср мар 09, 2016 08:07:41
Сообщений: 278
Рейтинг сообщения: 1
скорее всего cli() - запрет прерываний.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по чужому коду
СообщениеДобавлено: Пт авг 22, 2025 12:53:38 
Друг Кота
Аватар пользователя

Карма: 5
Рейтинг сообщений: 61
Зарегистрирован: Ср сен 30, 2020 16:51:47
Сообщений: 4625
Откуда: РФ
Рейтинг сообщения: 0
Вот ещё фрагмент этого кода:

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: Вопрос по чужому коду
СообщениеДобавлено: Пт авг 22, 2025 13:07:47 
Грызет канифоль
Аватар пользователя

Карма: 1
Рейтинг сообщений: 26
Зарегистрирован: Ср мар 09, 2016 08:07:41
Сообщений: 278
Рейтинг сообщения: 0
Вот ещё фрагмент этого кода:


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

как понял 1 шаг = 1 %


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по чужому коду
СообщениеДобавлено: Пт авг 22, 2025 13:08:55 
Говорящий с текстолитом

Карма: 25
Рейтинг сообщений: 452
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1649
Откуда: KN34PC, Болгария
Рейтинг сообщения: 1
cl() - функция.
Код:
void cl(){digitalWrite(UD,LOW);for(int i=0;i<100;i++){digitalWrite(INC,LOW);digitalWrite(INC,HIGH);}}

Предложенный источник инфо (найден по фрагменту):
X9Cxxx — электронный потенциометр (Arduino)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по чужому коду
СообщениеДобавлено: Пт авг 22, 2025 13:19:03 
Друг Кота
Аватар пользователя

Карма: 5
Рейтинг сообщений: 61
Зарегистрирован: Ср сен 30, 2020 16:51:47
Сообщений: 4625
Откуда: РФ
Рейтинг сообщения: 0
Вот ещё фрагмент этого кода:


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

как понял 1 шаг = 1 %


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

Добавлено after 1 minute 25 seconds:
cl() - функция.


Благодарю вас за информацию.
В языке Arduino C можно вот так запросто объявлять какие угодно функции? Не знал.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по чужому коду
СообщениеДобавлено: Пт авг 22, 2025 13:26:32 
Говорящий с текстолитом

Карма: 25
Рейтинг сообщений: 452
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1649
Откуда: KN34PC, Болгария
Рейтинг сообщения: 1
Возможно. Главное, чтобы имя не совпадало, например, с именем служебной функции.

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

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

напр. в STM32 SPL:
void ADC_ExternalTrigInjectedConvConfig(ADC_TypeDef* ADCx, uint32_t ADC_ExternalTrigInjecConv);
Так как не вижу далеко, долго читаем в очках на мониторе, пока не понимаем, что хотели сказать :).


Последний раз редактировалось veso74 Пт авг 22, 2025 13:37:07, всего редактировалось 2 раз(а).

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по чужому коду
СообщениеДобавлено: Пт авг 22, 2025 14:05:26 
Друг Кота
Аватар пользователя

Карма: 5
Рейтинг сообщений: 61
Зарегистрирован: Ср сен 30, 2020 16:51:47
Сообщений: 4625
Откуда: РФ
Рейтинг сообщения: 0
veso74,

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

Добавлено after 35 minutes 5 seconds:
Другая крайность: стиль CamelCase code - напр. 10 см функция, с 10 существительными, прилагательными и глаголами ...
напр. в STM32 SPL:
void ADC_ExternalTrigInjectedConvConfig(ADC_TypeDef* ADCx, uint32_t ADC_ExternalTrigInjecConv);
Так как не вижу далеко, долго читаем в очках на мониторе, пока не понимаем, что хотели сказать :).


Для меня это всё другая планета. Про стили программирования я только слышал, а STM32 лишь на картинках видел. Я себе вообще не представляю как с ними люди мучаются. Лучше уж тогда какой-нибудь Raspberry Pi наверно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по чужому коду
СообщениеДобавлено: Пт авг 22, 2025 17:48:28 
Друг Кота
Аватар пользователя

Карма: 61
Рейтинг сообщений: 1549
Зарегистрирован: Вт окт 22, 2013 04:37:23
Сообщений: 3345
Откуда: Казань
Рейтинг сообщения: 2
Лучше Sony Playstation. Сидишь, гамаешь и никаких мучений. :roll:

_________________
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезисты Ordyl Alpha 350 и AM 140.
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльная маска XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y