Interrupt 2, INT_2 Kategorie: Programmierung Basic (von Klaus - 20.09.2010 21:56) | ||
| ||
Hallo Ich verwende die Mega32 für eine eigene Anwendung mit dem Project Board und IDE1.71. (Nur auf einem Rechner läuft überhaupt noch WindowsME, das nicht mt den neueren IDE Versionen zusammen arbeiten will.) Die Tastatur(en) sind über PCF8574 angeschlossen. Durch einen Tastendruck wird zunächst ein Interrupt ausgelöst, der das Programm zum Erkennen der betätigten Taste startet. Damit über den I2C Bus andere Anwendungen ungestört bearbeitet werden können, möchte ich den Interrupt unterbinden, wenn der Bus belegt ist. Dazu wollte ich das Kommando Ext_IntDisable(2) benutzen. Das scheint aber nicht zu funktionieren, wie das unten stehende Programm zeigt. Ist der Interrupt 2 einmal aktiviert, kann er nicht mehr abgeschaltet werden. Ist das Verhalten mit den neuen IDE Versionen anders? Liegt ein Fehler vor? Klaus Dim Text(30) As Char Dim irqcnt As Byte Sub Zeiten() Text ="doch anders" irqcnt = Irq_GetCount(2) End Sub Sub main() ' Definition Interrupt Eingang Port_DataDirBit(10,0) 'Interrupt Eingang Port_WriteBit(10,1) 'interner Pullup eingeschaltet I2C_Init(I2C_100kHz) Serial_Init(0,SR_8BIT Or SR_1STOP Or SR_NO_PAR,SR_BD19200) AbsDelay (50) ' Interrupt definieren Irq_SetVect(2,Zeiten) Ext_IntEnable(2,0) 'Interrupt 2, fallende Flanke ' PCF8574 vorbereiten für externen Interrupt ' Tastendruck erzeugt Interrupt I2C_Start() I2C_Write(70) 'eingestellte Adresse I2C_Write(&H0F) 'setzen für fallende Flanke = Interrupt I2C_Stop() Text ="Text soll gleich bleiben" ' externer Interrupt wird abgeschaltet Ext_IntDisable(2) Do Serial_WriteText(0,Text) Serial_Write(0,&H0D) Serial_Write(0,&H0A) Loop While True End Sub /* Ergebnis vor Druck auf Taste des Tastatur Text soll gleich bleiben Text soll gleich bleiben Text soll gleich bleiben Text soll gleich bleiben Text soll gleich bleiben Text soll gleich bleiben Text soll gleich bleiben Text soll gleich bleiben doch anders doch anders doch anders doch anders Ext_IntDisable verhindert nicht, da� der Sprung ins Interrupt Programm "Zeiten" stattfindet. */ | ||
Antwort schreiben Antworten: Re: Interrupt 2, INT_2 (von Joerg - 21.09.2010 11:48) Re: Interrupt 2, INT_2 (von Klaus - 21.09.2010 17:37) Re: Interrupt 2, INT_2 (von PeterS - 20.09.2010 22:59) Re: Interrupt 2, INT_2 (von Klaus - 21.09.2010 17:46) Re: Interrupt 2, INT_2 (von Klaus - 21.09.2010 22:30) Re: Interrupt 2, INT_2 (von Joerg - 22.09.2010 8:08) Re: Interrupt 2, INT_2 (von Klaus - 23.09.2010 20:23) Re: Interrupt 2, INT_2 (von PeterS - 22.09.2010 12:04) Re: Interrupt 2, INT_2 (von Torsten - 22.09.2010 18:33) Re: Interrupt 2, INT_2 (von PeterS - 22.09.2010 19:40) Re: Interrupt 2, INT_2 (von Jörg - 22.09.2010 21:42) Re: Interrupt 2, INT_2 (von PeterS - 23.09.2010 9:38) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum