Например TDA7294

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

Текущее время: Пн дек 29, 2025 13:17:42

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


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



Начать новую тему Ответить на тему  [ Сообщений: 7702 ]     ... , , , 384, ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Чт янв 09, 2025 19:25:09 
Опытный кот
Аватар пользователя

Карма: 11
Рейтинг сообщений: 79
Зарегистрирован: Пт фев 27, 2015 12:00:53
Сообщений: 839
Откуда: Рязанская область
Рейтинг сообщения: 0
СпойлерИзображение


с минусом десятичные числа в регистр 10h (Aging offset) нельзя записать только в формате двоичного целого числа со знаком с дополнением до 2, где бит 7 представляет бит знака числа.

помогите сделать конвертацию из десятичных в двоичное число с дополнение до двух и обратно

вот пример конвертации десятичные в двоично-десятичный код
Код:
// конвертируем обычные десятичные значения в двоично-десятичный код:
byte decToBcd(byte val){
  return( (val/10*16) + (val%10) );
}
// конвертируем двоично-десятичный код в обычные десятичные значения:
byte bcdToDec(byte val){
  return( (val/16*10) + (val%16) );
}


а мне нужно конвертацию из десятичных в с двоичное число с дополнение до двух и обратно

или я чета не понимаю... если вы говорите ВОТ ТАК И ЭТО ПРОСТО.
Цитата:
В чём неудобство? Наоборот же, никаких не нужно преобразований - складывай-вычитай-умножай-не-хочу. Положительное записать - Wire.write(12), отрицательное - Wire.write(-12).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Чт янв 09, 2025 19:56:37 
Собутыльник Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 433
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2557
Рейтинг сообщения: 4
а мне нужно конвертацию из десятичных в с двоичное число с дополнение до двух и обратно
Вы вообще читаете что вам пишут? Раз пять написали, что не надо ничего конвертировать. Переменная типа int8_t хранит в себе данные в нужном формате.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Чт янв 09, 2025 20:04:42 
Опытный кот
Аватар пользователя

Карма: 11
Рейтинг сообщений: 79
Зарегистрирован: Пт фев 27, 2015 12:00:53
Сообщений: 839
Откуда: Рязанская область
Рейтинг сообщения: 0
https://dzen.ru/a/XuIx2Lo4HTaLhFKM
ААААААААААААААААААААА :shock:
Я ПОНЯЛ наверно если число int8_t 1 байт -128… 127 Целые числа
оно само как надо пишется, мая ошибка была то что я читал не все байты почему-то :dont_know:
Aging_off = (Wire.read() & 0x7f);// читаем байты

а надо все Aging_off = (Wire.read() & 0xff);// читаем байты –

Добавлено after 41 second:
да да дошло, спасибо.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Чт янв 09, 2025 21:49:17 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2927
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18893
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 2
Медали: 1
Лучший человек Форума 2017 (1)
" & 0xff" - вообще лишняя "деталь". эта "маска" никак не изменяет само число.
"дополнение до 2" - это образное выражение, и не соответствует действительности.
а в общем случае, чтобы получить отрицательное число, нужно из 0 (а не из 2) вычесть положительное число.
например, есть положительное число 5.
0 - 5 = -5.

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пт янв 10, 2025 07:45:44 
Собутыльник Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 433
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2557
Рейтинг сообщения: 0
Вообще, не образное, а алгоритм получения представления отрицательного числа "на бумажке". В процессоре/контроллере оно автоматически так работает.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн янв 13, 2025 12:08:54 
Опытный кот
Аватар пользователя

Карма: 11
Рейтинг сообщений: 79
Зарегистрирован: Пт фев 27, 2015 12:00:53
Сообщений: 839
Откуда: Рязанская область
Рейтинг сообщения: 0
позвольте еще спросить :)))
когда выставляешь врем в часах, как сделать мигание одним из значений времени. :dont_know:

в библиотеке iarduino_RTC это ест, но я не знаю где в ней искать эту
функцию gettime() с синтаксисом void blinktime(uint8_t value, float frequency = 1)
https://iarduino.ru/file/235.html?yscli ... 9488429175 //библиотека iarduino_RTC

или можно самому как то написать функцию blinktime(); :solder:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн янв 13, 2025 17:05:42 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1432
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4599
Откуда: Планета Земля
Рейтинг сообщения: 2
Медали: 1
Получил миской по аватаре (1)
Как и чем может мигать библиотека, работающая с микросхемой часов ?
Мигать же можно только на дисплее. Ну, или светодиодом :))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн янв 13, 2025 17:15:54 
Мудрый кот

Карма: 25
Рейтинг сообщений: 494
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1823
Откуда: KN34PC, Болгария
Рейтинг сообщения: 2
Устанавливаете Notepad++, вставляете все файлы в программу, нажимаете CTRL+F и выполняете поиск по всем файлам.
3 секунды, 8 щелчков мыши. Файл iarduino_RTC.h, строка 76.

СпойлерИзображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн янв 13, 2025 22:23:11 
Опытный кот
Аватар пользователя

Карма: 11
Рейтинг сообщений: 79
Зарегистрирован: Пт фев 27, 2015 12:00:53
Сообщений: 839
Откуда: Рязанская область
Рейтинг сообщения: 0
Цитата:
Устанавливаете Notepad++, вставляете все файлы в программу, нажимаете CTRL+F и выполняете поиск по всем файлам.

спасибо понял. но blinktime(uint8_t value, float frequency = 1) мне не подходит он мигает с одинаковыми интервалами... :(

Добавлено after 4 hours 2 minutes 55 seconds:
решено! :))) может кому интересно.
не надо никаких функций делать просто вставляете в то место чем мигать собрались и все!!!
(millis() & 512) ? Now_Minute / 10 : '0'

Спойлерcase 2: { //= Режим установки минут

Now_Minute = PressingButton(Now_Minute, 0, 59);

//стало
DigitOut(Now_Hour / 10, Now_Hour % 10,(millis() & 512) ? Now_Minute / 10 : 'PROBEL', (millis() & 512) ? Now_Minute % 10 : 'PROBEL', 0, led_color);

// было
//DigitOut(Now_Hour / 10, Now_Hour % 10, Now_Minute / 10, Now_Minute % 10, 0, led_color); // Вывод на диоды

if (minute != Now_Minute){minute = Now_Minute; setRTC_minute();}

break;}


хотя и мигает с одним интервалом :roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Чт авг 21, 2025 13:54:18 
Потрогал лапой паяльник
Аватар пользователя

Карма: -8
Рейтинг сообщений: -8
Зарегистрирован: Чт май 20, 2021 13:33:05
Сообщений: 331
Рейтинг сообщения: 0
Переписываю библиотеку с ESP32 . В процессе обнаружилось непонимание компилятором GCC констант вида : 0b00000000, причем в main , к которому ее пытаюсь подключать проблем нет , они в .h библиотеки . Какой заголовочник надо добавить в него? Сейчас в ней stdbool.h и stdint.h.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Чт авг 21, 2025 14:13:59 
Мучитель микросхем

Карма: 1
Рейтинг сообщений: 48
Зарегистрирован: Вт окт 01, 2024 15:22:33
Сообщений: 478
Рейтинг сообщения: 1
В процессе обнаружилось непонимание компилятором GCC констант вида : 0b00000000

С++ такие префикс поддерживает начиная с С++14, а в C они появились только в С23, но на уровне GNU-расширений 0b уже очень давно работает, т.е. по идее достаточно просто добавить -std=gnu17 или какая там у вас версия стандарта...

ps. Проверил у себя на gcc 14 и ему вообще без разницы какие ключи, 0b работает всегда )


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Чт авг 21, 2025 14:41:42 
Вымогатель припоя

Карма: 2
Рейтинг сообщений: -5
Зарегистрирован: Сб авг 09, 2025 22:08:28
Сообщений: 601
Рейтинг сообщения: 0
Adrift, вопрошающий уверяет, что не понимает именно компилятор. Учитывая, что он не прикладывает образец своего переписывания, нет повода для сомнения в его словах. И он спрашивал "Какой заголовочник надо добавить в него?" а не это вот всё ;)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Чт авг 21, 2025 15:51:31 
Потрогал лапой паяльник
Аватар пользователя

Карма: -8
Рейтинг сообщений: -8
Зарегистрирован: Чт май 20, 2021 13:33:05
Сообщений: 331
Рейтинг сообщения: 0
Попробую еще раз:
причем в main , к которому ее пытаюсь подключать проблем нет , они
(проблемы) в .h библиотеке .

Компилятор "понимает" их в main , и не понимает в заголовочнике библиотеки. В main есть #include "biblioteka.h" (вымышлено)

Nranddek писал(а):
а не это вот всё
Да ! :)
Например , если из biblioteka.h удалить stdint.h , то компилятор в ней не понимает и uint8_t , uint16_t , итд . А в маин -понимает.
Значит в ней не хватает заголовочника или макроса.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Чт авг 21, 2025 15:59:30 
Потрогал лапой паяльник
Аватар пользователя

Карма: 1
Рейтинг сообщений: 26
Зарегистрирован: Ср мар 09, 2016 08:07:41
Сообщений: 301
Рейтинг сообщения: 0
muravei_, приведите сообщение об ошибке.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Чт авг 21, 2025 16:41:39 
Потрогал лапой паяльник
Аватар пользователя

Карма: -8
Рейтинг сообщений: -8
Зарегистрирован: Чт май 20, 2021 13:33:05
Сообщений: 331
Рейтинг сообщения: 0
Не много не доглядел , это варнинг , их так много , в перемешку с ошибками.
Цитата:
warning: binary constants are a C23 feature or GCC extension

Хотелось бы устранить причину.

Возможно, устранил.
Библиотечный CMakeLists.txt дописал. - Ну не думал я ,что он такой тупой! :o


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Чт авг 21, 2025 17:14:06 
Вымогатель припоя

Карма: 2
Рейтинг сообщений: -5
Зарегистрирован: Сб авг 09, 2025 22:08:28
Сообщений: 601
Рейтинг сообщения: 0
пишите в классическом стандарте Си, либо игнорируйте предупреждение, либо не используйте подобные константы (я вот не использовал, не использую и не планирую, и как-то живу ;) ) либо отключить предупреждение, правда, вряд ли его можно избирательно отключить, скорее всего, отвалятся все подобные, предупреждающие о несоответствии стандартов


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Чт авг 21, 2025 18:16:57 
Мучитель микросхем

Карма: 1
Рейтинг сообщений: 48
Зарегистрирован: Вт окт 01, 2024 15:22:33
Сообщений: 478
Рейтинг сообщения: 0
Muravei_, у меня такой ворнинг только с -Wpedantic появляется, можно заменить его на -Wextra или -Wall.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Сб авг 23, 2025 12:54:50 
Потрогал лапой паяльник
Аватар пользователя

Карма: -8
Рейтинг сообщений: -8
Зарегистрирован: Чт май 20, 2021 13:33:05
Сообщений: 331
Рейтинг сообщения: 0
На пока последняя ощибка :
Код:
void init_spi(spi_inst_t *spi ,  uint baudrate);

Ругается на мою функцию так :
Цитата:
conflicting types for 'init_spi'; have 'void(spi_inst_t *, unsigned int)' {aka 'void(struct spi_inst *, unsigned int)'}gcc

Параметры честно скопированы из СДК , spi.h инклуден , в нем есть переопределение
Код:
typedef struct spi_inst spi_inst_t;

Что ему еще надо?
Пытался преобразовывать , ничего не вышло. :(

либо не используйте подобные константы (я вот не использовал

Это не я , это останки переделываемоей библиотеки , глупо ими не воспользоваться. Да и битами тут нагляднее.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Сб авг 23, 2025 14:02:53 
Потрогал лапой паяльник
Аватар пользователя

Карма: 1
Рейтинг сообщений: 26
Зарегистрирован: Ср мар 09, 2016 08:07:41
Сообщений: 301
Рейтинг сообщения: 0
muravei_, замените uint baudrate на unsigned int baudrate.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Сб авг 23, 2025 18:54:59 
Потрогал лапой паяльник
Аватар пользователя

Карма: -8
Рейтинг сообщений: -8
Зарегистрирован: Чт май 20, 2021 13:33:05
Сообщений: 331
Рейтинг сообщения: 0
на unsigned int baudrate.


Я так делал . Но все оказалось проще, я в двух файлах эту функцию объявил , нечаянно. :))

Но ошибки еще не кончились.
Вот еще :
Код:
int spi_write_buffer(int reg, const uint8_t *buffer, size_t buffer_length, spi_inst_t* spi) {
  uint8_t tx_buf[ buffer_length + 1];
  tx_buf[0] = reg & 0x80; //
  memcpy (&tx_buf[1] , buffer, buffer_length );

Ругается на memcpy
Цитата:
implicit declaration of function 'memcpy' [-Wimplicit-function-declaration]gcc


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

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


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

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


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

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


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