Например TDA7294

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

Текущее время: Вс окт 12, 2025 11:58:51

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


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



Начать новую тему Ответить на тему  [ Сообщений: 7690 ]     ... , , , 380, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт апр 16, 2024 09:11:21 
Говорящий с текстолитом

Карма: -7
Рейтинг сообщений: 185
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1602
Рейтинг сообщения: 0
У меня немного другой сейчас интерес. Например, тот же самый светодиод - как лучше и эффективнее работать с периферией, какими способами?
Самый лучший способ: Всё время смотреть в листинг! Написали строчку кода, скомпилили (с макс.оптимизацией), посмотрели в листинг - что получилось? И следующая итерация. И т.д.

Можно, конечно, пробовать разные варианты и смотреть, во что это разворачивается в ассемблере.
Так и следует делать.
Но самостоятельно это довольно долгий путь.
Быстро только кошки плодятся.
Если будете делать это несамостоятельно, то в голове ничего не останется.


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

Карма: 12
Рейтинг сообщений: 134
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1294
Рейтинг сообщения: 0
Самый лучший способ: Всё время смотреть в листинг! Написали строчку кода, скомпилили (с макс.оптимизацией), посмотрели в листинг - что получилось? И следующая итерация. И т.д.

Нафига? Это смотря какие цели.) К примеру, я хочу писать красиво и лаконично. На кой мне листинг?)


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вс апр 21, 2024 21:41:46 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 885
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6137
Откуда: Minsk
Рейтинг сообщения: 0
К примеру, я хочу писать красиво и лаконично. На кой мне листинг?)

Между "я хочу" и "я умею" есть некоторая разница. :) Когда это десятки раз писалось в разных вариантах и успешно работало - можно и без листинга. Да и то: в сложных случаях непонятно - то ли компилятор дурит, то ли сам накосячил. А вид сгенерированного кода всё расставит по местам.

_________________
Изображение


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

Карма: 12
Рейтинг сообщений: 134
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1294
Рейтинг сообщения: 0
Ой. "Компилятор дурит" - это уже говорит о многом. Не обижайтесь.)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вс апр 21, 2024 21:52:47 
Друг Кота

Карма: 67
Рейтинг сообщений: 1964
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
Вера в безгрешность компилятора тоже о многом может сказать. Например, что верующий не использовал XC8/16/32, список ошибок которых достаточно большой. Не знаю, как сейчас, а раньше в фреймворке Микрочипа было явно указано не включать оптимизацию XC8.
Компилятор - это как бэ всё-таки тоже программа. Со всеми её свойствами.


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

Карма: 12
Рейтинг сообщений: 134
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1294
Рейтинг сообщения: 0
Обычно, начинающие все свои ошибки списывали на компилятор.)


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вс апр 21, 2024 22:29:21 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 885
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6137
Откуда: Minsk
Рейтинг сообщения: 0
Не обижайтесь.)

Чего мне обижаться - я же не компилятор :) А начинающим (по программному делу) я был этак в году 76-м прошлого тысячелетия. :(
А насчёт наличия ошибок в компиляторе... Когда в преферансе мне сетовали за недозаказ - я спрашиваю:
- А если 4 на 4 в двух мастях на одной руке?
- Ну, этого никогда не бывает.
- Значит, ты мало играл. У меня случалось.
Цитата:
То-то и оно.
© А.Пугачёва, жена иноагента.

_________________
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн апр 22, 2024 16:51:57 
Сверлит текстолит когтями

Карма: 12
Рейтинг сообщений: 134
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1294
Рейтинг сообщения: 0
Да. Я тоже находил ошибки в контроллере HDD. Но это ТАКАЯ редкость. Вы понимаете? В основном, ошибки у начинающих. Которым кажется что виноваты все, кроме них самих.)


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Чт май 02, 2024 11:59:24 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 885
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6137
Откуда: Minsk
Рейтинг сообщения: 0
Можно сформулировать корректнее: не "компилятор глючит", а "есть разное понимание некоторых инструкций у компилятора и юзера". Юзер может считать, что "это ведь так по умолчанию", а у компиля другое мнение.
До сих пор помню,хоть прошло порядочно. Работал в старом, ещё Борландовском Си. Ввожу переменную - портится рядом лежащая! Ошибка не очевидная, трудно улавливаемая. Когда поймал, стал разбираться. Оказывается, для ввода float требовался формат %lf, без вариантов, даже если просто float, а не double. , У меня же просто %f . И получив такой формат, оно вместо предупреждения во всю дурь, на все 16 байт хряпнуло введённое значение. Мол, хрен тебя знает, какая точность тебе нужна, на всяк случай запупырю максимальную. Конечно, моей вины тут больше половины, но при анализе синтаксиса мог бы хоть предупреждение выдать.
Мне скажут: юзер может таких конструкций нагородить, что компилятору вариантов анализа мильён понадобится. А я не спорю. Нужно точно следовать описанию используемой версии языка. Но при анализе ошибки листинг ну никак не помешает - пусть не "что это компайл надурил?", а "в чём у нас между-недопонимание?" И особенно для МК - тут пользователей меньше, поколения МК меняются чаще, и степень "вылизанности" софта по определеню меньше, чем у "the language of general use"

_________________
Изображение


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

Карма: 12
Рейтинг сообщений: 134
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1294
Рейтинг сообщения: 0
Припоминаю последнюю ошибку компилятора:)
Код:
  eeprom_write_byte(0, 0x34);           //litle-endian
  eeprom_write_byte(1, 0x12);

  uint8_t i = 2;                        //всё плохо: 3412
  uint16_t v = eeprom_read_byte(--i)<<8 | eeprom_read_byte(--i);


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Чт май 02, 2024 17:08:34 
Друг Кота

Карма: 67
Рейтинг сообщений: 1964
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
uint8_t eeprom_read_byte...


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

Карма: 12
Рейтинг сообщений: 134
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1294
Рейтинг сообщения: 0
А членораздельнее?)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Чт май 02, 2024 17:29:18 
Друг Кота

Карма: 67
Рейтинг сообщений: 1964
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
перед сдвигом влево требуется приведение к типу uint16_t


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

Карма: 12
Рейтинг сообщений: 134
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1294
Рейтинг сообщения: 0
Нафига? Результат у нас какой тип имеет?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Чт май 02, 2024 18:17:24 
Друг Кота

Карма: 67
Рейтинг сообщений: 1964
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
Результат имеет uint16_t. Но сдвиг об этом ничего не знает, его приоритет выше.
и опять же: число скобок бесконечно во вселенной. a << b | c(d) можно прочитать и как a << (b | c(d)). И да, я верю, что все знают приоритеты, но пишу так: (a << b) | c(d)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Чт май 02, 2024 18:33:38 
Сверлит текстолит когтями

Карма: 12
Рейтинг сообщений: 134
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1294
Рейтинг сообщения: 0
Ну, то что для успокоения каждый пишет по своему, это дело каждого. Но, есть же правила. И им пофигу какая у вас религия.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Чт май 02, 2024 18:39:18 
Друг Кота

Карма: 67
Рейтинг сообщений: 1964
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
у нас не религия. Правила есть, да. Почему же Вы им не следуете?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Чт май 02, 2024 19:01:13 
Сверлит текстолит когтями

Карма: 12
Рейтинг сообщений: 134
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1294
Рейтинг сообщения: 0
Внимательно читаем приведение типов.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Чт май 02, 2024 19:07:36 
Друг Кота

Карма: 67
Рейтинг сообщений: 1964
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
Может, лучше про приведение типов? Или "Приведение типов"? Или тоже похуй?


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

Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2708
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
OKF писал(а):
uint16_t v = eeprom_read_byte(--i)<<8 | eeprom_read_byte(--i);
Я правильно понимаю, что у Вас результат, который попал в v, это 0x0034?
Ворнинга не было?

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


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

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


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

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


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

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


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