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

Обсуждаем контроллеры компании Atmel.
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

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

Сообщение Martian »

изначально в коде и были единицы и гашение ноль. так зачем надо было просить менять?\
я не вдумывался. Была просьба поменять - инвертировал.
что-то Вы путаете.
В конце-концов, изучите как работает микроконтроллер и поменяйте сами, возни на пару дней, зато как в детской книжке будет: "не надо приставать к сестрице ну прочитай ещё страницу, не надо звать, не надо ждать, а можно взять и перепрограммировать"
Реклама
Аватара пользователя
Smith2011
Прорезались зубы
Сообщения: 210
Зарегистрирован: Вс дек 26, 2010 23:08:53
Откуда: Москва, Зеленоград
Контактная информация:

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

Сообщение Smith2011 »

metan, в оригинале программы сегменты управляются нолями.

Добавлено after 6 minutes 44 seconds:
[uquote="Martian",url="/forum/viewtopic.php?p=4522391#p4522391"]Была просьба поменять - инвертировал.
что-то Вы путаете.[/uquote]
Поменять интервал просьба была в 2020 году, на что я получил четкий ответ. А увы на второй вопрос ответа нет :(
Принцип я понимаю, когда то даже программировал на Турбопаскале году так в 1989. Увы, но сейчас закидывать что-то в мозг почти в 52 года не просто, вот и обратился с просьбой к котам.

В программе выложенной выше сегменты управляются нолями и это видно по протеусу :(
Реклама
metan
Вымогатель припоя
Сообщения: 593
Зарегистрирован: Ср янв 06, 2010 10:01:46

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

Сообщение metan »

Smith2011 писал(а):metan, в оригинале программы сегменты управляются нолями
Smith2011 писал(а):В программе выложенной выше сегменты управляются нолями и это видно по протеусу
Кому вы эту лажу задвигаете? Единицы там, разоруженным же взглядом это видно! В полном соответствии с кодом, кстати! Индикатор с общим анодом, на общих анодах разрядов единички, на катодах сегментов нолики. На выходах контроллера (до инвертора) единички, как вы и просили. Что не так-то?
Снимок.PNG
(36.43 КБ) 62 скачивания
Smith2011 писал(а):увы на второй вопрос ответа нет
да по-ходу и не будет до тех пор, пока вы игнорируете неоднократные просьбы нескольких людей привести в студию свою реальную схему!
Аватара пользователя
Serzh2000
Опытный кот
Сообщения: 867
Зарегистрирован: Пт фев 27, 2015 12:00:53
Откуда: Рязанская область

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

Сообщение Serzh2000 »

А увы на второй вопрос ответа нет :(
Принцип я понимаю, когда то даже программировал на Турбопаскале году так в 1989. Увы, но сейчас закидывать что-то в мозг почти в 52 года не просто, вот и обратился с просьбой к котам.

В программе выложенной выше сегменты управляются нолями и это видно по протеусу :(
Martian дал ответ. разкомментируйте нужные строки
выбор активного 0 или 1 для зажигания сегмента и выбор активного 0 или 1 для зажигания разряда.
сегмент "0", разряд "0"
сегмент "0", разряд "1"
сегмент "1", разряд "0"
сегмент "1", разряд "1"

Код: Выделить всё

// Timer 1 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void) {
//        PORTD&=0b10000111;    // потушить все разряд "1"
           PORTD|=0b01111000;    // потушить все разряд "0" 
        
//        PORTB=digits[digit_out[cur_dig]]; // сегмент "1"
        PORTB=(unsigned char)(~(digits[digit_out[cur_dig]])); // сегмент "0"
        
        
//        PORTD|=(cursor[cur_dig]);  // разряд "1"
          PORTD&=(unsigned char)(~(cursor[cur_dig]));  // разряд "0"
        
        
//        if ((zpt_ON == 1) && (cur_dig == 1)) PORTB.3=1;  // запятая во втором разряде "1"
        if ((zpt_ON == 1) && (cur_dig == 1)) PORTB.3=0;  // запятая во втором разряде "0"
 
        
        cur_dig++; if (cur_dig>3) cur_dig=0;
}
мудрость черпал отсюда :))) https://radiokot.ru/forum/viewtopic.php?f=57&t=21235
Последний раз редактировалось Serzh2000 Ср дек 27, 2023 09:01:33, всего редактировалось 2 раза.
Реклама
Эиком - электронные компоненты и радиодетали
metan
Вымогатель припоя
Сообщения: 593
Зарегистрирован: Ср янв 06, 2010 10:01:46

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

Сообщение metan »

Serzh2000 писал(а):разкомментируйте нужные строки
В вашем коде 2 ошибки (вероятно, унаследованные :) ), выделять цветом внутри тега code не вышло, поставил '!!!'

Код: Выделить всё

// Timer 1 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void) {
//        PORTD&=0b10000111;    // потушить все разряд "1"
        PORTD&=0b01111000;    // потушить все разряд "0" !!!
 
       
//        PORTB=digits[digit_out[cur_dig]]; // сегмент "1"
        PORTB=(unsigned char)(~(digits[digit_out[cur_dig]])); // сегмент "0"
       
       
//        PORTD|=(cursor[cur_dig]);  // разряд "1"
        PORTD|=(unsigned char)(~(cursor[cur_dig]));  // разряд "0" !!!
       
       
//        if ((zpt_ON == 1) && (cur_dig == 1)) PORTB.3=1;  // запятая во втором разряде "1"
        if ((zpt_ON == 1) && (cur_dig == 1)) PORTB.3=0;  // запятая во втором разряде "0"
 
       
        cur_dig++; if (cur_dig>3) cur_dig=0;
}
я считаю правильным такой код:

Код: Выделить всё

// Timer 1 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void) {
//        PORTD&=0b10000111;    // потушить все разряд "1"
        PORTD|=0b01111000;    // потушить все разряд "0"
 
       
//        PORTB=digits[digit_out[cur_dig]]; // сегмент "1"
        PORTB=(unsigned char)(~(digits[digit_out[cur_dig]])); // сегмент "0"
       
       
//        PORTD|=(cursor[cur_dig]);  // разряд "1"
        PORTD&=(unsigned char)(~(cursor[cur_dig]));  // разряд "0"
       
       
//        if ((zpt_ON == 1) && (cur_dig == 1)) PORTB.3=1;  // запятая во втором разряде "1"
        if ((zpt_ON == 1) && (cur_dig == 1)) PORTB.3=0;  // запятая во втором разряде "0"
 
       
        cur_dig++; if (cur_dig>3) cur_dig=0;
}
Реклама
Аватара пользователя
Serzh2000
Опытный кот
Сообщения: 867
Зарегистрирован: Пт фев 27, 2015 12:00:53
Откуда: Рязанская область

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

Сообщение Serzh2000 »

metan . Да, Вы правы немного поспешил. Спасибо.
Реклама
Аватара пользователя
Smith2011
Прорезались зубы
Сообщения: 210
Зарегистрирован: Вс дек 26, 2010 23:08:53
Откуда: Москва, Зеленоград
Контактная информация:

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

Сообщение Smith2011 »

Коллеги! Я идиот!
Действительно на выходах все единицы, я разобрался. У меня на плате и на индикаторе были ошибки.

Всем спасибо!!!

И с Наступающим Новым Годом!!!!
Ответить

Вернуться в «AVR»