Обсуждаем контроллеры компании Atmel.
Ответить

Динамическая индикация

Сб окт 26, 2019 22:22:52

AT90USB162. Нужно чтобы два средних разряда 4-разрядного индикатора мигали. Прерывания по идее пока не должны использоваться.
В протеусе мигает, а вот настоящий микро просто светит цифры...
Код:
.device     AT90USB162
.include "usb162def.inc"
.def    tmp= r16
rjmp reset                  ;прерывание по сбросу
.org $0040 ;*******начало основной программы
reset:   
    ldi     tmp,High(RAMEnd)   
    out     sph,tmp 
    ldi     tmp,Low(RAMEnd)   
    out     spl,tmp         
    ldi     tmp,0b11111111       
    out     DDRB,tmp           
    ldi     tmp,0b11111111               
    out     DDRD,tmp
    ldi     tmp,0b01100000
    out     PORTD,tmp
main:
    ldi  r21, 1 ; выводим единицы
    call decode
    call delay
    ldi  r21, 10 ;гасим
    call decode
    call delay
    jmp  main
decode:   
    lsl r21
    ldi zh, high(DcMatrix*2)   
    ldi zl, low(DcMatrix*2)   
    ldi tmp,0   
    add zl,r21   
    adc zh,tmp   
    lpm r0,z   
    out PORTB,r0; вывод кода индикации в порт   
    ret
DcMatrix:
                          .db 0b00111111
              .db 0b00000110
              .db 0b01011011
              .db 0b01001111
              .db 0b01100110
              .db 0b01101101
              .db 0b01111101
              .db 0b00000111
              .db 0b01111111
              .db 0b01101111   
              .db 0b00000000
delay:     
    ldi r17,255   
    ldi r18,200
    ldi r19,0   
    ldi r20,0
_delay: subi r17,0x1     
    sbci r18,0     
    sbci r19,0     
    sbci r20,0     
    brcc _delay     
    ret

Re: Динамическая индикация

Вс окт 27, 2019 00:44:39

,В протеусе мигает, а вот настоящий микро просто светит цифры...

Есть подозрение, что у Вас и в настоящем мигает, просто Вы этого не видете :-)

Re: Динамическая индикация

Вс окт 27, 2019 05:02:23

AT90USB162.
В протеусе мигает, а вот настоящий микро просто светит цифры...
Думаю, мешает WDT. Попробуйте программно отключить его. Типа

Re: Динамическая индикация

Пт янв 03, 2020 15:22:09

Всем доброго времени суток. Нашел на AliExpress такой вот индикатор. (См.вложение) Планирую использовать его в своем проекте. Индикатор имеет 8 выводов, и состоит из 16 светодиодов, подключенных по схеме матрицы 4х4. С помощью сдвигового регистра в протеусе подал на индикатор коды от 0 до 255. Использовал кнопку для инкремента переменной по внешнему прерыванию. Да вот оказия. Мне необходимо получить последовательное зажигание всех светодиодов. Но, согласно схеме матрицы, последовательность диодов D0,D1,D2,D3 + D4...D6 статически никак не зажечь. И тут как выход - динамическая индикация на таймере. D0,D1,D2,D3 и D0,D4 мерцают с частотой, которая настраивается и зависит от:
1) Частоты МК (от фьюзов при прошивке МК).
2) Делителя частоты при инициалицации таймера.
3) Регистра сравнения в таймере/компараторе.
Задача - найти необходимые значения частоты при которой мерцание светодиодов было бы не заметным. Пришлость немного нагородить секций в switch( :)) ){}
Indicator.gif
Индикатор
(130.51 KiB) Скачиваний: 89
Модель_в_протеусе-4.gif
Модель в протеусе-4
(112.04 KiB) Скачиваний: 63
Модель_в_протеусе-14.gif
Модель в протеусе-14
(140.9 KiB) Скачиваний: 67
Модель_в_протеусе-15.gif
Модель в протеусе-15
(69.93 KiB) Скачиваний: 58
Код
Но это свего лишь модель, и код ещё предстоит тестировать на реальных элементах. На семисегментниках будет отображаться остаток топлива в бензобаке в литрах. А такой вот круговой индикатор - дублирует цифровой для быстрой оценки остатка. Может у кого есть какие либо соображения, уважаемые Коты.

Re: Динамическая индикация

Пт янв 03, 2020 19:48:30

если оно будет в машине - то чем быстрей тем лучше, иначе при вибрации/тряске цифры трясёт (пропадает целостность восприятия дисплея) 1кГц на полное обновление минимум
но и в мегагерцы, конечно загонять тоде не стоит - яркость снизится, нагрузка на алу вырастет...

Добавлено after 5 minutes 51 second:
прикольный индикатор, хоть бы ссылкой поделился :)

Re: Динамическая индикация

Пт янв 03, 2020 20:13:22

Круговая светодиодная точечная матрица/16 отдельных световых точек/15 точек зеленый/1 точка красный свет/8 контактов Планирую такое дело поставить на мотоцикл. Частоту вероятнее всего придется подбирать экспериментально. (Примерно как у ШИМ-ов)

----
OK
Последний раз редактировалось Эйлер Леонард Пт янв 03, 2020 22:56:56, всего редактировалось 1 раз.

Re: Динамическая индикация

Пт янв 03, 2020 21:46:57

Эйлер Леонард, не надо изменять размер шрифта. тем более, что ты задаешь размер меньше "стандартного".
Ответить