AVR-Interrupts in C
Habe mich mal wieder an die Elektronik gesetzt und Promt das nächste Problem:
AVR-Studio, ATmega8535
Ich möchte ein kleines Versuchsprogramm haben, dass alle 5000Takte den PortB um einen runterzählt und bei PIND2 per Interrupt PORTB auf 0x00 setzt.
Klappt natürlich nicht, ich denke ich habe die Geschichte mit den Interrupts noch nicht 100%ig verstanden, werde aus diversen Tutorials auch nicht wirklich schlau was jetzt genau wo hin muss.
Hier mal mein Text
-----------------------------------------
#include <AVR/io.h>
#include <avr/interrupt.h>
int main (void) {
int i;
DDRB=0xff;
PORTB=0xff;
GIFR=(1<<INTF0);
MCUCR =((1<<ISC01)|(1<<ISC00));
sei();
while(1) {
while(i<5000) i++;
PORTB--;
i=0;
SIGNAL (SIG_INT0)
{
PORTB=0;
}
}
return(0);
}
-----------------------------------------
Was mach ich falsch?
|