Особенно когда используется ардуиновский digitalWrite() - это ужасно ужасно. Пережитки прошлого.
Я и говорю - лучше динамическую индикацию напрямую на микроконтроллере, чем ногодрыжный SPI или I2C.
Ну и ассемблер туда же... Я как-то видел одного чувака, который на ассемблере решил прогать STM32H743. Жуткое было зрелище. За два года он сумел только таймеры подергать и еще кой-чо помелочи.
Базилюк писал(а):Я и говорю - лучше динамическую индикацию напрямую на микроконтроллере, чем ногодрыжный SPI или I2C.
Мне тут прям сразу интересно стало))
Получается написать на асме псевдо-I2C под TM1637 в 180 строк (и это с коментариями, пропусками строк и прочими украшениями) - это ногодрыжный интерфейс? ))
А написать на Сях динамику и задействовать 12 лап контроллера - это ни разу не ногодрыжный))
Или на Сях аппаратная динамика?
У кого из нас с логикой не так?
Базилюк писал(а):Я как-то видел одного чувака, который на ассемблере решил прогать STM32H743. Жуткое было зрелище. За два года он сумел только таймеры подергать и еще кой-чо помелочи.
Аргумент конечно увесистый))
Но я как-то видел одну бабушку, она так и не осилила STM32H743, даже на Сях
Добавлено after 14 minutes 58 seconds: Re: ATmega8, динамическая индикация, switch case и десятичная то
PS: я дополню:
Базилюк писал(а):Частота обновления - это фигня. А вот определенная последовательность переключения ног для разрядов и сегментов - это куда важнее. Правильно - сначала погасить предыдущий разряд, затем выставить новую комбинацию сегментов, потом зажечь текущий разряд. Если последовательность перепутать, будет засветка сегментов в соседних разрядах. Пройденный на своих шишках этап.
И вы хотите сказать, что это не ногодрыг?)
Или если на Сях написано, то ногодрыгом не считается?))
Я имею ввиду то, что при наличии аппаратных SPI/I2C использовать ногодрыжный софтовый вариант - это моветон в наше время, динозавризм. Не важно, сколько там строк. Современные МК имеют по 3-6 аппаратных SPI и столько же I2C, недостатка в них нет. С другой стороны, при наличии 48-100 ног выделить 12 ножек под индикатор - тоже не проблема.
В общем, не стоит уподобляться древним звероящерам. На дворе уходит 2024 год, а вы всё топчитесь в прошлом тысячелетии.
Лучше бы че по теме темы сказали, чем флеймить про какую-то фигню. Спор ради спора - фигня с ушами. По делу пишите, а не спорьте на тему звероящеров.
Добавлено after 2 minutes 36 seconds: Re: ATmega8, динамическая индикация, switch case и десятичная то
ЗЫ. Через DMA и таймер можно и аппаратную динамику запустить, да ваще не проблема.
Базилюк писал(а):Современные МК имеют по 3-6 аппаратных SPI и столько же I2C, недостатка в них нет.
согласен))
но весь сыр бор тут и произошёл из-за того, что у TM1637 свой 2-х проводный интерфейс) типа I2C, но не он)
и аппаратка не канает)) и библиотеки то глючные оказались) и без "ногодрыга" никуда)
но если сравнивать TM1637 с динамикой, то экономится по выводам 1:6) а по коду примерно 1:1
как то так)
Давно использую управление TM1637 по аппаратному/программному I2c: МК: от Arduino, ATtiny13A, PIC до STM32. Отправляете данны без адреса (no slave address), данные "наоборот" (LSB), и не нужно писать еще одну функцию для отправки данных. На 100 kHz все ОК. На форуме есть тема.
shonty, кроме того прямая динамическая индикация требует от кода жесткий тайминг, иначе яркость разрядов будет плавать (обычно под это выделяют таймер, коопераивно ещё с каким нибудь времязависимым кодом или даже монопольно + его прерывание(я) )
При внешнем управлении индикатором (через СПИ/И2С и доп микросхему-контроллер) когда захотел - тогда и обновил... красота! но, частота регенерации в этом случае обычно задается контроллером и коррекции не поддается.
Для тех, кто не учил магию мир полон физики
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Ни каких жёстких таймйнгов, и не жёстких тоже никаких .
Яркость разрядов одинаковая , по крайней мере на глаз не различается.
Атмега8 , код на си.
Добавлено after 14 minutes 44 seconds: Re: ATmega8, динамическая индикация, switch case и десятичная то
А да, забыл , вот код со свичами, касями и десятичными то ...
Добавлено after 1 minute 35 seconds: Re: ATmega8, динамическая индикация, switch case и десятичная то
Код написан в CVAVR
А каков будет хорошо продуманный дизайн , для семисегментных индикаторов ?
Добавлено after 2 minutes 51 second: Re: ATmega8, динамическая индикация, switch case и десятичная то
Да и тема то не про дизайн !?
Добавлено after 2 minutes 14 seconds: Re: ATmega8, динамическая индикация, switch case и десятичная то
Да , для тех кто в танке в верхней сторке последний симол это V вольт по нашему, а в нижней это А ампер.
Martian писал(а):для тех, кто не в танке: там не горят сегменты у нолика и восьмёрки. Чем скорее Вы это поймёте, тем быстрее поумнеете.
Это где и кем определено ?
Я решил во встраиваемый ампервольтметр "встроить" наименования
показаний, понятным любому адекватному человеку ...
Кстати Базилюк понял сам , без разьяснений , думаю что 99,(9) процентов людей
имеющих представление что такое ток и напряжение так же поймут
А мнение 1/99,(9) процентов человечества ... пусть имеют своё , ни кто же не запрещает.
Добавлено after 12 minutes 48 seconds: Re: ATmega8, динамическая индикация, switch case и десятичная то
И вообще мы отвлеклись от темы, про дизайн речи не шло .
Как бы динамическая индикация switch case и десятична ... имеют место быть !
Thinnnfor, посмотрел я ваш код...
Как это ни каких жестких таймингов если индикация полностью вписана внутрь прерывания таймера? СпойлерОстальное по коду в ЛС...
Для тех, кто не учил магию мир полон физики
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
[uquote="Thinnnfor",url="/forum/viewtopic.php?p=4633997#p4633997"]вот ещё и схема...[/uquote]
А зачем столько лишних лапок?
Достаточно поставить дешифратор и ограничиться четырьмя... Да еще и кнопы в таком случае на контроллер дисплея/клавиатуры присоединить. С учетом начинки АВРок вполне себе такое на всего одном из таймеров делается.
Схем для светиков уже столько наделано...
У топикстартера (Denis-1307) похоже другая проблема - как семисегментные "кракозябры" под СИ удобно организовать...
Там лучше сначала значения кракозябр заготовить, а уже потом их имена в соответствующих местах программы использовать...
Как то вроде вот такого:
Спойлер
Эх, динамическая индикация... ммм Пробило на скупую слезу ностальгии Если в ящичках есть семисегментник, пойду делать честную динамическую индикацию. Я ж сто лет её не делал.
Была поставлена цель, сделать максимально-минимальную конструкцию встраемого ампер-вольтметра.
Лишние дешифраторы, регистры, или любые другие компоненты, увеличили бы размер плат. А так всё
уместилось ( почти) в спичечный коробок, вместе с шунтом.
Ну дык в таком случае можно было и посегментным сканированием обойтись и транзисторов нету и полярность матриц безразлична. МК с такой задачей вполне справится.
А? Чё? Я срач пропустил? Кому там TMки хренью показались? Денег много и свободного времени у вас, видимо. Я тут недавно электрокотел на тини84 организовал - 4-х разрядный 7-мисегментник, управление энкодером с кнопкой, 2 канала АЦП, 4 цифровых входа, 7 каналов управления силовой нагрузкой, еще и 3 ноги у тиньки в резерве осталось. У TMки вообще задействовано не более 40 процентов от ее возможности. Ну, правда еще 595-й регистр один прикошачен для своих задач, но в целом, на мой взгляд, использовать динамическую индикацию силами МК сейчас это признак дурного тона. Лепить кучу рассыпухи, отжимать у контроллера лютую кучу портов только для того, чтобы дисплеем поморгать - такое себе.