Re: Interrupt 2, INT_2 Kategorie: Programmierung Basic (von PeterS - 22.09.2010 12:04) | |
Als Antwort auf Re: Interrupt 2, INT_2 von Joerg - 22.09.2010 8:08
| |
> > Peter > > > > Ein Nachtrag. Da ich keinen USB Anschlu� habe, kann ich Msg_WriteText nicht > > benutzen. Ich habe aber eine Warteschleife in dem Interrupt Programm eingebaut: > > Do > > k = k + 1 > > Loop While k > > > > so da� erst nach dem Zählen aller Integer Zahlen die Schleife verlassen > > wird und dann im Hauptprogramm den Interrupt Zähler ausgegeben. > > > > Es wurde immer 1 ausgegeben. Ich verstehe das so, da� während der Wartezeit > > kein weiterer Interrupt angekommen ist. > > > > Klaus > > Hallo Klaus, Hallo Peter, > > ich habe das folgende Testprogramm auf meinem MEGA128 mit IDE 2.12.02 getestet, > und es funktioniert ohne Probleme. Nach 10s kommen keine Interupts mehr durch. > Den IRQ Eingang habe ich mit einem Taster belegt. > > > Das Testprogramm ist im wesentlichen ein Kopie des Beispiels EXT_INT1.cc. > Was mir bei dem Beispiel aufgefallen ist, ist das der IRQ Eingang nicht mit > Port_DataDirBit als Eingang definiert wurde. > > Diese Frage geht an Peter. Ist dies bei Ext_IntEnable nicht nötig? > > Grü�e Jörg > > > > #define LF 0x0A > #define CR 0x0D > // ExtInt Quelle definieren > #define EXTINT INT_2 > // IntMode: 0= Interrupt bei 0 Pegel; 2=fallende Flanke; 3=steigende Flanke > #define INTMODE 2 > > > > void Ext_ISR(void) > { > byte i; > int irqcnt; > > Msg_WriteText("Ext IRQ "); > Msg_WriteChar(CR); > > irqcnt=Irq_GetCount(EXTINT); // Interrupt Request Counter > } > //------------------------------------------------------------------------------ > // Hauptprogramm > // > void main(void) > { > Msg_WriteText("Ext IRQ Test"); > Msg_WriteChar(CR); > > Irq_SetVect(EXTINT,Ext_ISR); // Interrupt Service Routine definieren > > > Ext_IntEnable(EXTINT,INTMODE); // Interrupt aktivieren > > Thread_Delay(1000); > > Msg_WriteText("Disable"); > Msg_WriteChar(CR); > Ext_IntDisable(EXTINT); > > while (1) > { > } > > } > > In meinen Tests funktioniert Ext_IntDisable() auch, da kann ich keine Probleme erkennen. Wenn die externen Interrupts eingeschaltet werden, dann können die Pins als Eingang oder Ausgang geschaltet worden sein, danach arbeiten Sie als Interrupt Eingänge. Gruss Peter | |
Antwort schreiben Antworten: 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