Вот код.Посмотрите пожалуйста в чем ошибка.Регистры настроенны таким образом,что прерывание срабатывает по нсподаещему фронту на INTO.Как я понимаю нисподающий фронт это изменение сигнала с "лог 1" до "лог 0".Правильно?И собственно код: компилятор WinAvr.Проверял в Proteus'e;
- Код: Выделить всё • Развернуть
#include <avr/io.h>
#define F_CPU 8000000UL
#include <avr/interrupt.h>
#include <avr/signal.h>
// External Interrupt 0 service routine
INTERRUPT(SIG_INTERRUPT0)
{
PORTB ^=0xff;
}
void main(void)
{
PORTB=0x00;
DDRB=0xFF;
GICR|=0x40;
MCUCR=0x02;
GIFR=0x40;
sei();
while (1)
{
};
}