Не могу разобраться с прерываниями. Контроллер at90can128, компилятор WinAVR.
Подскажите, пожалуйста, что не так. Программка простейшаю-хочу зажечь светодиод по нажатию кнопки о потушить по отпусканию.
ps Делал аналогичную программу на STK200-все отлично в реале работает.
Код
#include <stdio.h>
#include <avr/interrupt.h>
#include <AVR/io.h>
#include <stdlib.h>
#include <AVR/iocanxx.h>
#include <avr/iocan128.h>
#include "global.h" // include our global settings
ISR (INT0_vect) // обработчик прерывания INT0
{
EIFR = 0x00;
PORTB &= ~(1<<PORTB0);
}
ISR (INT1_vect) // обработчик прерывания INT0
{
EIFR = 0x00;
PORTB &= (1<<PORTB0);
}
int main(void)
{
DDRB=0xFF; // порт B настроен на выходы
PORTB=0xFF;
DDRE=0x00; // порт E настроен на вход
PORTE=0xFF; // порт E подтянут к VCC
EICRB = 0b11100000;
EIMSK = 0b11000000;
SREG = 0b10000000; //global interrupt en
for(;;)
{
}
return 0;
}