Кнопка замыкает ножку на землю.
Mega16
Код
#include <avr/io.h>
#include <avr/interrupt.h>
#define F_CPU 8000000UL // 8 MHz
#include <util/delay.h>
ISR(INT2_vect)
{
int i;
for (i=0;i<3;i++)
_delay_ms(10);
if ((PINB & 0x04)==0) // ножка внешнего прерывания
PORTA ^= 1;
}
int main()
{
PORTA = 0;
DDRA = 0xFF;
PORTB = 0xFF;
DDRB = 0x00;
MCUCSR &= ~_BV(ISC2); // по заднему фронту (H->L)
GICR = _BV (INT2);
sei ();
for(;;)
return(0);
}
Идея вроде бы правильная, но на практике срабатывает плоховато...
В чем ошибка?
Сообщение отредактировал Labinskiy Nikolay - Jul 9 2006, 18:59