Ah, vielen Dank für eure Hilfe. Hab's gerad eben auch hinbekommen... nur eine Frage zu dem MCUCR hab ich noch: Warum überschreibt der Zweite das Erste? Laut Datenblatt sind ISC01 und ISC00 unabhängig voneinander - je nachdem, welche der insgesamt 4 Kombinationsmöglichkeiten ich wähle, habe ich die 4 Modi: (vorne: ISC01 / hinten: ISC00) "00 - Interrupt bei Low-Level auslösen" "01 - bei irgend einer Pegeländerung" "10 - bei fallender Flanke" "11 - bei steigender Flanke"
Ist dem nicht so? Wenn nein - wie kann ich dann die 4 verschiedenen Modi aussuchen?
Hier mal noch mein kompletter Code... hilft vielleicht mal irgend einem Anfänger weiter, der vor dem selben Rätsel wie ich steht:
Code:#include <avr/delay.h> #include <avr/interrupt.h> //Variablen uint8_t counter; uint8_t i; //Interruptroutine, die ausgelöst werden soll ISR(INT0_vect) { for(i=0; i<2; i++) { PORTC |= (1<<0); //wait 16*65536 counter = 0; while(counter < 16) { counter++; _delay_loop_2(65535); } PORTC &= ~(1<<0); //wait 16*65536 counter = 0; while(counter < 16) { counter++; _delay_loop_2(65535); } } } int main(void) { /*###Initialisierungsphase###*/ //Pins bzw. Ports als Ein-/Ausgänge konfigurieren DDRC |= 0x11; //10001000 -> PORTC.4 ist blinkende LED im Hauptprogramm, PORTC.0 ist Anzeige des Interrupts DDRD |= 0x03; //00000011 -> PORTD.2 ist Interrupt0 (Der ausgelöst werden soll) //Interrupts initialisieren MCUCR &= ~(1<<ISC01); //stellen den Modus ein, wie der Interrupt auslöst - je nach Art des Sensorsignals muss ein anderer Modus gewählt werden MCUCR |= (1<<ISC00); //00 bei Low-Level //01 bei Änderung des Pegels (egal, welche) //10 bei fallender Flanke (high zu low) //11 bei steigender Flanke (low zu high) GICR |= (1<<INT0); //aktiviert den Interrupt an sich sei(); //aktiviert das globale Interrupt Enable-Flag (I im SREG-Register) while(1) { PORTC |= (1<<4); //wait 16*65536 counter = 0; while(counter < 16) { counter++; _delay_loop_2(65535); } PORTC &= ~(1<<4); //wait 16*65536 counter = 0; while(counter < 16) { counter++; _delay_loop_2(65535); } } return 1; }
Vielen Dank für eure Hilfe!! Schaut mal bitte noch wegen dem MCUCR-Register, das verwirrt mich noch. Ansonsten - alles gelernt, was auf dem Plan stand. Danke!!!
Grüßle
Corone







Zitieren

Lesezeichen