Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Interrupt 2, INT_2 Kategorie: Programmierung Basic (von Klaus - 20.09.2010 21:56)
Ich nutze:
C-Control Pro Mega32
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)