Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > > 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) > { > } > > } > >