Например TDA7294

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

Текущее время: Пт янв 30, 2026 03:04:31

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


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



Начать новую тему Ответить на тему  [ Сообщений: 97 ]    , , 3, ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: ATmega8, динамическая индикация, switch case и десятична
СообщениеДобавлено: Вт окт 08, 2024 20:21:58 
Вымогатель припоя
Аватар пользователя

Карма: -15
Рейтинг сообщений: -24
Зарегистрирован: Пн июн 03, 2024 22:29:24
Сообщений: 520
Рейтинг сообщения: 0
вот ещё и схема , к выше выложенному коду
которая работает уже 5 лет в нескольких блоках
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8, динамическая индикация, switch case и десятична
СообщениеДобавлено: Вт окт 08, 2024 20:34:29 
Друг Кота

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

Добавлено after 2 minutes 3 seconds:
Изображение

Применение посегментной индикации при большом количестве разрядов предпочтительнее.

Добавлено after 1 minute 31 second:
Re: ATmega8, динамическая индикация, switch case и десятичная то
и вообще: вся динамическая индикация давным-давно разжёвана в книжках и статьях. В том числе и здесь, на этом сайте.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8, динамическая индикация, switch case и десятична
СообщениеДобавлено: Вт окт 08, 2024 20:59:25 
Вымогатель припоя
Аватар пользователя

Карма: -15
Рейтинг сообщений: -24
Зарегистрирован: Пн июн 03, 2024 22:29:24
Сообщений: 520
Рейтинг сообщения: 0
Кстати , динамическую индикацию можно делать на 595-х регистрах !
Есть проект на Мк PIC12F683 , и она занимает всего 3 пина микроконтроллера.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8, динамическая индикация, switch case и десятична
СообщениеДобавлено: Ср окт 09, 2024 14:59:23 
Друг Кота
Аватар пользователя

Карма: 52
Рейтинг сообщений: 2114
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 7065
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (2)
Thinnnfor, посмотрел я ваш код...
Как это ни каких жестких таймингов если индикация полностью вписана внутрь прерывания таймера? :dont_know:
СпойлерОстальное по коду в ЛС... :tea:

_________________
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: ATmega8, динамическая индикация, switch case и десятична
СообщениеДобавлено: Ср окт 09, 2024 18:00:19 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1501
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15405
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
вот ещё и схема...

А зачем столько лишних лапок?
Достаточно поставить дешифратор и ограничиться четырьмя... Да еще и кнопы в таком случае на контроллер дисплея/клавиатуры присоединить. С учетом начинки АВРок вполне себе такое на всего одном из таймеров делается.
Схем для светиков уже столько наделано...
:tea:
У топикстартера (Denis-1307) похоже другая проблема - как семисегментные "кракозябры" под СИ удобно организовать...
Там лучше сначала значения кракозябр заготовить, а уже потом их имена в соответствующих местах программы использовать...
Как то вроде вот такого:
Спойлер
Код:
// набор MAX7219 8-позиционник

#define s_A 6 // значение номера сегмента A
#define s_B 5 // значение номера сегмента B
#define s_C 4 // значение номера сегмента C
#define s_D 3 // значение номера сегмента D
#define s_E 2 // значение номера сегмента E
#define s_F 1 // значение номера сегмента F
#define s_G 0 // значение номера сегмента G
#define s_H 7 // значение номера сегмента H

/* "кодовая страница кракозябр 7-сегментных"
 раскладка сегментов по символам определяется стандартной разметкой A-H
 по условию, что активный уровень(сегмент астивен/светится) принят за 1 */

#define fnt_bl 0
#define fnt_0 (1<<s_A | 1<<s_B | 1<<s_C | 1<<s_D | 1<<s_E | 1<<s_F) // цифра 0 или символ "О"
#define fnt_1 (1<<s_B | 1<<s_C) // цифра 1
#define fnt_2 (1<<s_A | 1<<s_B | 1<<s_D | 1<<s_E | 1<<s_G) // цифра 2
#define fnt_3 (1<<s_A | 1<<s_B | 1<<s_C | 1<<s_D | 1<<s_G) // цифра 3 или символ "Э/З"
#define fnt_4 (1<<s_B | 1<<s_C | 1<<s_F | 1<<s_G) // цифра 4 или символ "Ч"
#define fnt_5 (1<<s_A | 1<<s_C | 1<<s_D | 1<<s_F | 1<<s_G) // цифра 5 или символ "S"
#define fnt_6 (1<<s_A | 1<<s_C | 1<<s_D | 1<<s_E | 1<<s_F | 1<<s_G) // цифра 6
#define fnt_7 (1<<s_A | 1<<s_B | 1<<s_C) // цифра 7
#define fnt_8 (1<<s_A | 1<<s_B | 1<<s_C | 1<<s_D | 1<<s_E | 1<<s_F | 1<<s_G) // цифра 8
#define fnt_9 (1<<s_A | 1<<s_B | 1<<s_C | 1<<s_D | 1<<s_F | 1<<s_G) // цифра 9
#define fnt_A (1<<s_A | 1<<s_B | 1<<s_C | 1<<s_E | 1<<s_F | 1<<s_G) // символ "A"
#define fnt_b (1<<s_C | 1<<s_D | 1<<s_E | 1<<s_F | 1<<s_G) // символ "b"
#define fnt_C (1<<s_A | 1<<s_D | 1<<s_E | 1<<s_F) // символ "C" (прямая скобка '[' )
#define fnt_d (1<<s_B | 1<<s_C | 1<<s_D | 1<<s_E | 1<<s_G) // символ "d"
#define fnt_E (1<<s_A | 1<<s_D | 1<<s_E | 1<<s_F | 1<<s_G) // символ "E"
#define fnt_F (1<<s_A | 1<<s_E | 1<<s_F | 1<<s_G) // символ "F"
#define fnt_P (1<<s_A | 1<<s_E | 1<<s_F | 1<<s_G | 1<<s_B) // символ "P"
#define fnt_L (1<<s_E | 1<<s_F | 1<<s_D) // символ "L"
#define fnt_H (1<<s_B | 1<<s_C | 1<<s_E | 1<<s_F | 1<<s_G) // символ "H"
#define fnt_U (1<<s_B | 1<<s_C | 1<<s_E | 1<<s_F | 1<<s_D) // символ "U"
#define fnt_I (1<<s_E | 1<<s_F) // левая 1 или латинская I
#define fnt_S (1<<s_A | 1<<s_C | 1<<s_D | 1<<s_F | 1<<s_G) // аналог цифры 5
#define fnt_J (1<<s_A | 1<<s_B | 1<<s_C | 1<<s_D | 1<<s_E) // символ "J"
#define fnt_G (1<<s_A | 1<<s_C | 1<<s_D | 1<<s_E | 1<<s_F) // символ "G"
#define fnt_r (1<<s_G | 1<<s_E) // символ "r"
#define fnt_n (1<<s_G | 1<<s_E | 1<<s_C) // символ "п"
#define fnt_c (1<<s_G | 1<<s_E | 1<<s_D) // символ "с" или '<'
#define fnt_o (1<<s_G | 1<<s_E | 1<<s_D | 1<<s_C) // нижний кружок "о"
#define fnt_u (1<<s_C | 1<<s_E | 1<<s_D) // символ "u"
#define fnt_h (1<<s_C | 1<<s_E | 1<<s_F | 1<<s_G) // символ "h"
#define fnt_rusg (1<<s_A | 1<<s_E | 1<<s_F) // символ "Г"
#define fnt_rusP (1<<s_A | 1<<s_E | 1<<s_F | 1<<s_B | 1<<s_C) // символ "П"
#define fnt_rus_iE (1<<s_A | 1<<s_B | 1<<s_C | 1<<s_D | 1<<s_G) // символ Э/З/цифра 3 (инверсное Е)
#define fnt_rusY (1<<s_F | 1<<s_G | 1<<s_B | 1<<s_C | 1<<s_D) // символ "У"
#define fnt_qest (1<<s_A | 1<<s_B | 1<<s_E | 1<<s_G) // символ "?"
#define fnt_rC (1<<s_A | 1<<s_B | 1<<s_C | 1<<s_D) // символ ']' (обратная скобка/"вывернутая С")
#define fnt_rc (1<<s_G | 1<<s_C | 1<<s_D) // символ '>'
#define fnt_gradus (1<<s_A | 1<<s_B | 1<<s_F | 1<<s_G) // верхний кружок "символ грвдуса"
#define fnt_minus (1<<s_G) // символ "-" (средняя черта)
#define fnt_aplin (1<<s_A) // символ "верхняя черта"
#define fnt_dnlin (1<<s_D) // символ "_" (нижняя черта)
#define fnt_trlin (1<<s_A | 1<<s_G | 1<<s_D) // символ "три черты"
#define fnt_coma (1<<s_H) // символ "," (децимальная точка)

:roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8, динамическая индикация, switch case и десятична
СообщениеДобавлено: Ср окт 09, 2024 18:02:31 
Нашел транзистор. Понюхал.

Карма: 4
Рейтинг сообщений: 20
Зарегистрирован: Чт сен 19, 2024 19:18:28
Сообщений: 159
Рейтинг сообщения: 0
Эх, динамическая индикация... ммм :) Пробило на скупую слезу ностальгии :) Если в ящичках есть семисегментник, пойду делать честную динамическую индикацию. Я ж сто лет её не делал.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8, динамическая индикация, switch case и десятична
СообщениеДобавлено: Ср окт 09, 2024 20:43:26 
Вымогатель припоя
Аватар пользователя

Карма: -15
Рейтинг сообщений: -24
Зарегистрирован: Пн июн 03, 2024 22:29:24
Сообщений: 520
Рейтинг сообщения: 0
BOB51 писал(а):
А зачем столько лишних лапок?

Была поставлена цель, сделать максимально-минимальную конструкцию встраемого ампер-вольтметра.
Лишние дешифраторы, регистры, или любые другие компоненты, увеличили бы размер плат. А так всё
уместилось ( почти) в спичечный коробок, вместе с шунтом.
Изображение Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8, динамическая индикация, switch case и десятична
СообщениеДобавлено: Чт окт 10, 2024 09:36:49 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1501
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15405
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Ну дык в таком случае можно было и посегментным сканированием обойтись и транзисторов нету и полярность матриц безразлична. МК с такой задачей вполне справится.
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8, динамическая индикация, switch case и десятична
СообщениеДобавлено: Пт окт 11, 2024 17:50:39 
Электрический кот
Аватар пользователя

Карма: 2
Рейтинг сообщений: 47
Зарегистрирован: Вс мар 01, 2009 19:47:16
Сообщений: 1046
Откуда: Ростов-на-Дону
Рейтинг сообщения: 0
А? Чё? Я срач пропустил? Кому там TMки хренью показались? Денег много и свободного времени у вас, видимо. Я тут недавно электрокотел на тини84 организовал - 4-х разрядный 7-мисегментник, управление энкодером с кнопкой, 2 канала АЦП, 4 цифровых входа, 7 каналов управления силовой нагрузкой, еще и 3 ноги у тиньки в резерве осталось. У TMки вообще задействовано не более 40 процентов от ее возможности. Ну, правда еще 595-й регистр один прикошачен для своих задач, но в целом, на мой взгляд, использовать динамическую индикацию силами МК сейчас это признак дурного тона. Лепить кучу рассыпухи, отжимать у контроллера лютую кучу портов только для того, чтобы дисплеем поморгать - такое себе.

_________________
Не важно чем все начнется. Важно чем кончится!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8, динамическая индикация, switch case и десятична
СообщениеДобавлено: Пт окт 11, 2024 18:51:38 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1501
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15405
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Так ВСЕ ОТНОСИТЕЛЬНО.
Для каждого конкретного случая свое наиболее подходящее решение.
8)
Кстати... Для тех контроллеров (что MAX, что другие "кракозябровые") все равно по хорошему внутренний буфер в ОЗУ потребуется для предподготовки пакета данных.
:roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8, динамическая индикация, switch case и десятична
СообщениеДобавлено: Пт окт 11, 2024 19:28:07 
Вымогатель припоя
Аватар пользователя

Карма: -15
Рейтинг сообщений: -24
Зарегистрирован: Пн июн 03, 2024 22:29:24
Сообщений: 520
Рейтинг сообщения: 0
Viper_Snake писал(а):
Кому там TMки хренью показались?

Мне.
Я так и не смог запустить ту китйскую херь на TM1637 .
Хотя с MAX7219 проблем вообще не было.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8, динамическая индикация, switch case и десятична
СообщениеДобавлено: Пт окт 11, 2024 19:33:24 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1501
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15405
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
У ТМок протокол весьма вредный...
Но вполне съедобный.
Их (и их разновидности) частенько на индикаторах весов ставят...
:evil:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8, динамическая индикация, switch case и десятична
СообщениеДобавлено: Пт окт 11, 2024 21:42:11 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2927
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18935
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
Я так и не смог запустить ту китйскую херь на TM1637 .
Хотя с MAX7219 проблем вообще не было.

ни чуть не сложнее, чем с MAX7219. примерно, как два пальца ...

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8, динамическая индикация, switch case и десятична
СообщениеДобавлено: Пт окт 11, 2024 21:44:19 
Вымогатель припоя
Аватар пользователя

Карма: -15
Рейтинг сообщений: -24
Зарегистрирован: Пн июн 03, 2024 22:29:24
Сообщений: 520
Рейтинг сообщения: 0
Старичёк , ты то супермонстр ассемблера ! А я то на си балуюсь .


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8, динамическая индикация, switch case и десятична
СообщениеДобавлено: Пт окт 11, 2024 22:16:59 
Нашел транзистор. Понюхал.

Карма: 4
Рейтинг сообщений: 20
Зарегистрирован: Чт сен 19, 2024 19:18:28
Сообщений: 159
Рейтинг сообщения: 0
У TM1637 интерфейс корявый, в отличие от нормального SPI у MAX7221. У MAX7219 немного неправильный SPI в части работы CS/Load.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8, динамическая индикация, switch case и десятична
СообщениеДобавлено: Пт окт 11, 2024 22:27:55 
Вымогатель припоя
Аватар пользователя

Карма: -15
Рейтинг сообщений: -24
Зарегистрирован: Пн июн 03, 2024 22:29:24
Сообщений: 520
Рейтинг сообщения: 0
7219- это просто - это просто ! Я не пользователь библиотек и скетчей ! Я просто написал прогу в кодевижин авр , без библиотек . Программно дёргаю выводы и всё с 7219 работает , и уже всяких часов с всякими бегущими строками, набегающими с верху .. это уже как года 4 назад написал . А во т ТМ - это какое то дерьмо , которое не хочет работать .


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8, динамическая индикация, switch case и десятична
СообщениеДобавлено: Сб окт 12, 2024 00:53:16 
Нашел транзистор. Понюхал.

Карма: 4
Рейтинг сообщений: 20
Зарегистрирован: Чт сен 19, 2024 19:18:28
Сообщений: 159
Рейтинг сообщения: 0
Как раз наоборот - в MAX7219 НЕ нужно программно дергать выводы, там аппаратный SPI справляется. А вот TM1637 - это косячный интерфейс - почти I2C, только нет адреса слейва.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8, динамическая индикация, switch case и десятична
СообщениеДобавлено: Сб окт 12, 2024 00:59:03 
Друг Кота

Карма: 67
Рейтинг сообщений: 1964
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
Если есть аппаратный SPI. Или без него удобнее трассировка. В общем, все средства хороши.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8, динамическая индикация, switch case и десятична
СообщениеДобавлено: Сб окт 12, 2024 11:06:59 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1501
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15405
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Старичёк , ты то супермонстр ассемблера ! А я то на си балуюсь .

Где то вроде выкладывал и под адуриний Си -"лаподрыг"то и там никто не отменял.
:wink:
Доки для ТМ1637
Вложение:
TM1637_урезанная.pdf [712.75 KiB]
Скачиваний: 41

Вложение:
DATASHEET-TM1637_var2.pdf [712.75 KiB]
Скачиваний: 33

8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega8, динамическая индикация, switch case и десятична
СообщениеДобавлено: Вс окт 13, 2024 11:31:19 
Модератор
Аватар пользователя

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

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


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

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


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

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


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

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


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