добрый вечер
Почемуто не вызывается прерывание. Проверял на живом МК и на VMLAB подскажите плиз.
=== CUT === #include <avr/io.h>
#include <avr/io2313.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
void ioinit() { DDRB = 0xff; // Установим порт 'B' на выход (11111111b если 1 то соотв. нога на выход 0 вход) PORTB == 0xff; }
void interrupt_init() { TCCR0 = 0x05; // устанавливаем делитель частоты кварца на 1024
timer_enable_int(_BV (TOIE0)); // разрешить прерывание от таймера 0 (функция _BV() переводит бит в число). sei(); // разрешить прерывания }
// Функция прерывания таймера 0 вызывается при достижении TCCR0 == 256 и сбрасывается на 0 // т.е. начинается отсчет сначала SIGNAL(SIG_OVERFLOW0) { //TCCR0 = 100; // переопределим с какого числа считать таймеру. //~~~~~???????????????????
switch (PORTB) { case 0x00: {PORTB == 0xff;break;} case 0xff: {PORTB == 0x00;break;} }
}int main (void) { ioinit (); interrupt_init();
while (1) { }
return (0); } === CUT ===
...