Einzelnen Beitrag anzeigen
Alt 21.04.2007, 19:04   #1
philharmony
Master
 
Registriert seit: 11.03.2003
Alter: 41
Beiträge: 610


philharmony eine Nachricht über ICQ schicken
Standard 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?
philharmony ist offline   Mit Zitat antworten