Witam,
chciałbym napisać program. Urządzenie składa się z 1 przycisku i 1 diody
po wcisnieciu przycisku raz dioda ma się zapalic na 3 min, po wcisnieciu tego samego przycisku w trakcie trwania tych 3 min powoduje zgaszenie diody i powrot do poczatku
Próbowałem w C z przerwaniami od tego przycisku ale w zaleznosc od tego na jakie zbocze reaguje mikrokontroler dostawalem prawie zawsze dwa sygnaly co moze byc tego przyczyna. Może jakoś nie poprawnie konfiguruję te przerwania ( a w zasadzie ich obsługę)
main()
{
DDRB=0xff;
PORTD=1<<PD2;
MCUCR=_BV(ISC10);
GIMSK=_BV(INT0);
SREG=0x80;
for(;
{}
}
SIGNAL(SIG_INTERRUPT0)
{
if(swieci==1)
{
swieci=0;
zgas();
}else
{
swieci=1;
zapal();
czekaj(3);
zgas();
swieci=0;
}
}
dodam ze funcke zapal zgas sa oczywiste (ustawiaja poprostu bit na 0 lub 1) natomiast czekaj(3) zapetla program na 3 min sprawdzajac wciaz stan swieci gdy jest rowne zero to przerywa sie petla
Ma ktoś pomysł co namąciłem nie tak?
dzięki za opinię
chciałbym napisać program. Urządzenie składa się z 1 przycisku i 1 diody
po wcisnieciu przycisku raz dioda ma się zapalic na 3 min, po wcisnieciu tego samego przycisku w trakcie trwania tych 3 min powoduje zgaszenie diody i powrot do poczatku
Próbowałem w C z przerwaniami od tego przycisku ale w zaleznosc od tego na jakie zbocze reaguje mikrokontroler dostawalem prawie zawsze dwa sygnaly co moze byc tego przyczyna. Może jakoś nie poprawnie konfiguruję te przerwania ( a w zasadzie ich obsługę)
main()
{
DDRB=0xff;
PORTD=1<<PD2;
MCUCR=_BV(ISC10);
GIMSK=_BV(INT0);
SREG=0x80;
for(;
}
SIGNAL(SIG_INTERRUPT0)
{
if(swieci==1)
{
swieci=0;
zgas();
}else
{
swieci=1;
zapal();
czekaj(3);
zgas();
swieci=0;
}
}
dodam ze funcke zapal zgas sa oczywiste (ustawiaja poprostu bit na 0 lub 1) natomiast czekaj(3) zapetla program na 3 min sprawdzajac wciaz stan swieci gdy jest rowne zero to przerywa sie petla
Ma ktoś pomysł co namąciłem nie tak?
dzięki za opinię