Мой первый проект(можно назвать и по другому, но для меня это выглядет так
Нужна помощ ибо самому не понятно ,точнее не могу понять как правильно использовать прерыание, по чему именно* использовать прерывание.
Задача.
принимаем два сигнала,
при сигнале 0 на PB0, даем выход PB2/0,8 сек.(sleep)
при сигнале 0 на PB1, выход PB2/0.8 сек ,PB3/15сек (sleep) , при этом если PB0==0,PB2/0,8 сек.
С кодом получаетса все просто, при задержке 15 сек PB0 не обслуживаетса.
пробовал и на С и на Асм
не хватает знаний, имея другие примеры нужного результата не достиг.
ВОТ КОД ПРОГРАММЫ;
#include <avr/io.h>
#include <util/delay.h>
#define sig1ON PORTB |= (1<<PB2)
#define sig1OFF PORTB ^= (1<<PB2)
#define sig2ON PORTB |= (1<<PB3)
#define sig2OFF PORTB ^= (1<<PB3)
#define t08 _delay_ms(800)
#define t10 _delay_ms(10000)
int main(void)
{
DDRB = 0b001100;
PORTB = 0b100011;
while(1)
{
if (bit_is_clear(PINB,PB0))
{
sig1ON;
t08;
sig1OFF;
}
if(bit_is_clear(PINB,PB1))
{
sig1ON;
sig2ON;
t08;
sig1OFF;
//t10;// ПРИ ЗАДЕРЖКЕ 10СЕК PB0 НЕ ОБСЛУЖИАЕТСА
//sig2OFF;//
}
}
}


