Программирование WinAVR ATMEGA8
Добавлено: Сб май 05, 2012 22:26:26
Помогите разобраться с программой
Уже запарился
При нажатии на кнопку на порт-С подается + на 5 сек.
Проблемма: при повторном нажатии ничего не происходит.

Уже запарился
Код: Выделить всё
#include <avr/io.h>
#include <avr/interrupt.h>
char time=0;
ISR (TIMER1_OVF_vect)
{
TCNT1=49911;
if (time) time--; else PORTC=0x00;
}
int main (void) {
DDRC=0xFF; PORTC=0x00;
DDRB=0x00; PORTB=0xFF;
TCCR1A=0;
TCCR1B=(1<<CS11)|(1<<CS10);
TCNT1=49911;
TIFR=0;
TIMSK=(1<<TOIE1);
sei();
while(1)
{
if ((~PINB)&(0b00000001))
if (!time)
{
time=5;
PORTC=0xFF;
TCNT1=49911;
}
}
}При нажатии на кнопку на порт-С подается + на 5 сек.
Проблемма: при повторном нажатии ничего не происходит.