Hallo,
habe da ein kleines Problem:
Ich habe ein Programm für den ATmel AT90S2313 in Bascom geschrieben. In dem Programm werden sowohl Timer0 Interrupts als auch die externen Interrupts INT0 und INT1 benutzt. Das Problem ist nun, dass die externen Interrupts wunderbar funktionieren aber der Timer0 Interrupt nicht anspricht, sprich nicht ausgeführt wird. Deaktiviere ich die Interrupts INT0 und INT1, dann funktioniert der Timer0 Interrupt wie gewünscht. Aber alle zusammen klappen leider irgendwie nicht!
Villeicht kann mir jemand von Euch einen Tipp geben? Villeicht stelle ich mich auch nur zu dumm an? Hier mal die entsprechenden Codeschnipsel:
Code:$regfile = "2313def.dat" $crystal = 1000000 Ddrb = &B11111111 'Ports Definieren alle Ausgang Ddrd = &B11110011 'PinD.2 und Pind.3 Eingang sonst Ausgang Portb = &B00000000 'Ausgänge Low setzen Portd = &B00000000 Sreg.7 = 1 'Interrupts Global freigeben Tccr0 = &B00000101 'Timer0 = Systemtakt / 1024 Timsk = &B00000010 'Timer0 Overflow Interrupt einschalten Gimsk = &B11000000 'Interrupt INT0 und INT1 einschalten Mcucr = &B00000101 'Interrupt INT0 und INT1 bei fallender oder steigender Flanke On Timer0 Int_blinken 'Interrupt Routinen Deklarieren On Int0 Int_vorwaerts On Int1 Int_rueckwaerts Do 'Hauptprogramm Loop Int_blinken: 'Timer0 Overflow Interrupt Routine Toggle Portb.0 Return Int_vorwaerts: 'Interrupt0 Routine Toggle Portb.1 Return Int_rueckwaerts: 'Interrupt1 Routine Toggle Portb.2 Return







Zitieren

Lesezeichen