Interrupt-Problem Kategorie: Programmierung Basic (von erzgebirgler47 - 1.03.2010 18:56) | ||
| ||
Hallo Mitstreiter, ich habe ein Problem mit Hardwareinterrupts, die scheinbar nicht richtig abgearbeitet werden. Das Prog aus den Beispielen erstellt: 'Int 7 auf Port PE7 , Flanke fallend! #define LF 0x0A #define CR 0x0D Dim zaehler1 As Integer Dim zaehler2 As Integer Sub Ext_ISR() 'zaehler1=zaehler1 + 1 'interrupts zählen > geht nicht zaehler1++ '=zaehler1 + 1 'interrupts zählen >geht auch nicht zaehler2=Irq_GetCount(INT_7) End Sub Sub main() Dim text(20) As Char zaehler1 = 0 zaehler2 = 0 Serial_Init(0,SR_8BIT Or SR_1STOP Or SR_NO_PAR,SR_BD9600) AbsDelay(50) Serial_Write(0,CR) ' CR und LF ausgeben Serial_Write(0,LF) Serial_WriteText(0,"Gestartet") Serial_Write(0,CR) ' CR und LF ausgeben Serial_Write(0,LF) 'IRQ-Pin auf Eingang setzen Port_DataDirBit(39,0) '0=Eingang 'Pullup einschalten Port_WriteBit(39,1) 'ISR definieren Irq_SetVect(INT_7,Ext_ISR) 'Mode setzen und aktivieren Ext_IntEnable(7,2)'Mode Flanke fallend Serial_WriteText(0,"Int ein") Serial_Write(0,CR) ' CR und LF ausgeben Serial_Write(0,LF) Thread_Delay(10000)'10 sek warten Ext_IntDisable(7) Serial_WriteText(0,"Fertig") Serial_Write(0,CR) ' CR und LF ausgeben Serial_Write(0,LF) Serial_WriteText(0,"Zähler1=") Str_WriteInt(zaehler1,text,0) Serial_WriteText(0,text) Serial_Write(0,CR) ' CR und LF ausgeben Serial_Write(0,LF) Serial_WriteText(0,"Zähler2=") Str_WriteInt(zaehler2,text,0) Serial_WriteText(0,text) Serial_Write(0,CR) ' CR und LF ausgeben Serial_Write(0,LF) End Sub Keine Fehlermeldungen vom Compiler. Start über die Taste Reset/Run. Mit einem Stück Draht ein paar mal von PE7 auf GND. Ergebnis im Terminalprog: Gestartet Int ein Fertig Zähler1=1 Zähler2=229 Das ich in einer so hohen Frequenz schon zittrig bin, war mir gar nicht bewu�t, aber trotzdem hätte m.E. der Zähler1 mehr als 1 anzeigen müssen. Ich habe beide Arten der Zählererhöhung probiert. Natürlich Zähler 2 immer unterschiedlich, je nachdem wie zittrig ich war, aber Zähler1 immer = 1. Kann mir hier einer helfen? Mfg Erzgebirgler47 | ||
Antwort schreiben Antworten: |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum