после темы 'bit set' решил помигать диодами. Вот что получилось:
Код
#include <iom16v.h>
//----------------------------------------------------------
// interrupt on verflow
//----------------------------------------------------------
#pragma interrupt_handler timer0_overflow: iv_TIMER0_OVF
void timer0_overflow () {
int i;
while (i<8) {
i++;
switch (i) {
case 0: PORTD = 0x00;
case 1: PORTD = 0x80;
case 2: PORTD = 0xC0;
case 3: PORTD = 0xE0;
case 4: PORTD = 0xF0;
case 5: PORTD = 0xF8;
case 6: PORTD = 0xFC;
case 7: PORTD = 0xFE;
default : PORTD = 0x00;
}
if (i==8) i=0;
};
//PORTD ^= 0xFF; //toggle all pins
};
//----------------------------------------------------------
void init_portd (void) {
DDRD = 0xFF; //define all pins as outputs
PORTD = 0x00; //initially all LEDs are HIGHLIGHTED
}
void init_timer0(void) {
SREG |= 0x80; //enable all interrupts
TCCR0 = (1<<CS00) | (1<<CS02); //timer clk = system clk / 1024
TIMSK = 0x01; //enable Timer0 overflow interrupt
}
void main (void) {
init_portd();
init_timer0();
while (1) {
};
}
//----------------------------------------------------------
// interrupt on verflow
//----------------------------------------------------------
#pragma interrupt_handler timer0_overflow: iv_TIMER0_OVF
void timer0_overflow () {
int i;
while (i<8) {
i++;
switch (i) {
case 0: PORTD = 0x00;
case 1: PORTD = 0x80;
case 2: PORTD = 0xC0;
case 3: PORTD = 0xE0;
case 4: PORTD = 0xF0;
case 5: PORTD = 0xF8;
case 6: PORTD = 0xFC;
case 7: PORTD = 0xFE;
default : PORTD = 0x00;
}
if (i==8) i=0;
};
//PORTD ^= 0xFF; //toggle all pins
};
//----------------------------------------------------------
void init_portd (void) {
DDRD = 0xFF; //define all pins as outputs
PORTD = 0x00; //initially all LEDs are HIGHLIGHTED
}
void init_timer0(void) {
SREG |= 0x80; //enable all interrupts
TCCR0 = (1<<CS00) | (1<<CS02); //timer clk = system clk / 1024
TIMSK = 0x01; //enable Timer0 overflow interrupt
}
void main (void) {
init_portd();
init_timer0();
while (1) {
};
}
Но есть проблема - не работет.
Отдельми диодами и всеми сразу мигать могу, а вот чобы было последовательное отключение диодом - не получается.
Использую STK500 + ICC7.
Подскажите плиз как исправить.