Witam,
Mam problem z obsługą przerwań zewnętrznych uC Attiny2313. Do pinów INT0 i INT1 mam podpięte przyciski i za ich pomocą chciałbym załączać diody LED. Wykorzystuję generator wewnętrzny. Napisałem program, ale w ogóle nie reaguje na przyciski. Oto on:
Bardzo prosiłbym o pomoc, naprowadzenie, co jest nie tak.
Dołączam także schemat układu:
Pozdrawiam
Mam problem z obsługą przerwań zewnętrznych uC Attiny2313. Do pinów INT0 i INT1 mam podpięte przyciski i za ich pomocą chciałbym załączać diody LED. Wykorzystuję generator wewnętrzny. Napisałem program, ale w ogóle nie reaguje na przyciski. Oto on:
#include <avr\io.h>
#include <avr\delay.h>
#include <avr\signal.h>
#include <avr\interrupt.h>
#define D1 0
#define D2 1
#define D3 1
#define BUZZ 0
#define TSOP1 5
#define SW1 3
#define SW2 2
#define PULLUP_ON 0x2C // włączenie pullup dla wejść
int main(void)
{
DDRA=(1<<D1 | 1<<D2);
DDRD=(1<<D3 | 1<<BUZZ);
PORTD=PULLUP_ON;
GIMSK = _BV(INT0)|_BV(INT1);
//włącz obsługę przerwań Int0 i Int1
MCUCR = _BV(ISC01)|_BV(ISC11);
// włącz generowanie przerwań przez
// opadające zbocze na Int0 i Int1
sei(); // włącz obsługę przerwań
while(1);
return 0;
}
/////////////////////////////////////////////////
SIGNAL (SIG_INTERRUPT0)
{
PORTA = 0x0; // zgaś diode D1
}
SIGNAL (SIG_INTERRUPT1)
{
PORTA = 0x1; // zapal diode D1
}
Bardzo prosiłbym o pomoc, naprowadzenie, co jest nie tak.
Dołączam także schemat układu:
Pozdrawiam
