изначально в коде и были единицы и гашение ноль. так зачем надо было просить менять?\
я не вдумывался. Была просьба поменять - инвертировал.
что-то Вы путаете.
В конце-концов, изучите как работает микроконтроллер и поменяйте сами, возни на пару дней, зато как в детской книжке будет: "не надо приставать к сестрице ну прочитай ещё страницу, не надо звать, не надо ждать, а можно взять и перепрограммировать"
Динамическая индикация
- Реклама
- Smith2011
- Прорезались зубы
- Сообщения: 210
- Зарегистрирован: Вс дек 26, 2010 23:08:53
- Откуда: Москва, Зеленоград
- Контактная информация:
Re: Динамическая индикация
metan, в оригинале программы сегменты управляются нолями.
Добавлено after 6 minutes 44 seconds:
[uquote="Martian",url="/forum/viewtopic.php?p=4522391#p4522391"]Была просьба поменять - инвертировал.
что-то Вы путаете.[/uquote]
Поменять интервал просьба была в 2020 году, на что я получил четкий ответ. А увы на второй вопрос ответа нет
Принцип я понимаю, когда то даже программировал на Турбопаскале году так в 1989. Увы, но сейчас закидывать что-то в мозг почти в 52 года не просто, вот и обратился с просьбой к котам.
В программе выложенной выше сегменты управляются нолями и это видно по протеусу
Добавлено after 6 minutes 44 seconds:
[uquote="Martian",url="/forum/viewtopic.php?p=4522391#p4522391"]Была просьба поменять - инвертировал.
что-то Вы путаете.[/uquote]
Поменять интервал просьба была в 2020 году, на что я получил четкий ответ. А увы на второй вопрос ответа нет
Принцип я понимаю, когда то даже программировал на Турбопаскале году так в 1989. Увы, но сейчас закидывать что-то в мозг почти в 52 года не просто, вот и обратился с просьбой к котам.
В программе выложенной выше сегменты управляются нолями и это видно по протеусу
Re: Динамическая индикация
Smith2011 писал(а):metan, в оригинале программы сегменты управляются нолями
Кому вы эту лажу задвигаете? Единицы там, разоруженным же взглядом это видно! В полном соответствии с кодом, кстати! Индикатор с общим анодом, на общих анодах разрядов единички, на катодах сегментов нолики. На выходах контроллера (до инвертора) единички, как вы и просили. Что не так-то?Smith2011 писал(а):В программе выложенной выше сегменты управляются нолями и это видно по протеусу
да по-ходу и не будет до тех пор, пока вы игнорируете неоднократные просьбы нескольких людей привести в студию свою реальную схему!Smith2011 писал(а):увы на второй вопрос ответа нет
- Serzh2000
- Опытный кот
- Сообщения: 867
- Зарегистрирован: Пт фев 27, 2015 12:00:53
- Откуда: Рязанская область
Re: Динамическая индикация
Martian дал ответ. разкомментируйте нужные строкиА увы на второй вопрос ответа нет
Принцип я понимаю, когда то даже программировал на Турбопаскале году так в 1989. Увы, но сейчас закидывать что-то в мозг почти в 52 года не просто, вот и обратился с просьбой к котам.
В программе выложенной выше сегменты управляются нолями и это видно по протеусу
выбор активного 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;
}
Последний раз редактировалось Serzh2000 Ср дек 27, 2023 09:01:33, всего редактировалось 2 раза.
Re: Динамическая индикация
В вашем коде 2 ошибки (вероятно, унаследованныеSerzh2000 писал(а):разкомментируйте нужные строки
Код: Выделить всё
// 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: Динамическая индикация
metan . Да, Вы правы немного поспешил. Спасибо.
- Smith2011
- Прорезались зубы
- Сообщения: 210
- Зарегистрирован: Вс дек 26, 2010 23:08:53
- Откуда: Москва, Зеленоград
- Контактная информация:
Re: Динамическая индикация
Коллеги! Я идиот!
Действительно на выходах все единицы, я разобрался. У меня на плате и на индикаторе были ошибки.
Всем спасибо!!!
И с Наступающим Новым Годом!!!!
Действительно на выходах все единицы, я разобрался. У меня на плате и на индикаторе были ошибки.
Всем спасибо!!!
И с Наступающим Новым Годом!!!!


