Вт дек 26, 2023 14:28:45
Вт дек 26, 2023 16:50:34
Вт дек 26, 2023 19:38:15
Smith2011 писал(а):metan, в оригинале программы сегменты управляются нолями
Smith2011 писал(а):В программе выложенной выше сегменты управляются нолями и это видно по протеусу
да по-ходу и не будет до тех пор, пока вы игнорируете неоднократные просьбы нескольких людей привести в студию свою реальную схему!Smith2011 писал(а):увы на второй вопрос ответа нет
Вт дек 26, 2023 21:27:37
А увы на второй вопрос ответа нет
Принцип я понимаю, когда то даже программировал на Турбопаскале году так в 1989. Увы, но сейчас закидывать что-то в мозг почти в 52 года не просто, вот и обратился с просьбой к котам.
В программе выложенной выше сегменты управляются нолями и это видно по протеусу
// 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;
}
Вт дек 26, 2023 22:01:54
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;
}
Вт дек 26, 2023 22:23:24
Сб дек 30, 2023 19:43:27