На табло отображается количество включений AVR, кнопкой эмитируем зависание AVR. Code #include <mega8.h>
unsigned char led_table[10]={0x40,0x79,0x24,0x30,0x19,0x12,2,0x78,0,0x10}; unsigned int num_show=0; unsigned char sn=0; eeprom unsigned int run_count=0;
void segs_show() { if (sn==0) num_show=run_count; PORTC=0; PORTB=led_table[num_show%10]; PORTC=1<<sn; sn++; if (sn>3) sn=0; num_show/=10; }
void main(void) { DDRB=0x7f; DDRC=0x0f; PORTD=0x01; run_count++;
//Включаем Watchdog WDTCR=0x18; WDTCR=0x0E; //Prescale 1024k
while (1) { #asm("wdr"); //Сбрасываем счетчик WDT if (PIND.0==0) while (1) {} //Эмитируем зависание segs_show(); }; }
|