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 > > Hallo, > > ich habe ein kleines Problem. Ich starte bei meiner cc128 den 10ms Interrupt von Timer2. > > Darüber möchte ich die Tastatur abfragen und mir die DCF-Zeit holen. > > Wenn ich aber jetzt im Sub_main() in der DO...Loop Schleife auch noch Code ausführe dann > > verlangsamt sich die Interrupt-Routiene extrem. Teilweise dauert ein Interrupt-Durchlauf 30ms > > und mehr.... Unten habe ich mal ein bisschen vom Code eingestellt....... > > > > > > '------------------------------------------------------------------------------ > > ' 10ms Interruptroutiene > > ' > > Sub INT_10ms() > > Dim irqcnt As Integer > > DCF_PULS() ' DCF_MODE=1 Puls suchen > > DCF_SYNC() ' DCF_MODE=2 Synchronisation > > DCF_FRAME() ' DCF_MODE=3 Datenaufnahme > > Key_Input() ' Funktionsaufrauf: Tastaturabfrage > > irqcnt=Irq_GetCount(INT_TIM2COMP) ' Interrupt Request Counter > > End Sub > > > > > > '------------------------------------------------------------------------------ > > ' Hauptprogramm > > ' > > Sub main() > > > > Serial_Disable(1) ' 2. RS232 abschalten > > SPI_Disable() ' SPI abschalten > > LCD_Init() ' Display initialisieren > > LCD_ClearLCD() ' Display löschen > > LCD_CursorOff() ' Display Cursor ausschalten > > Key_Init() ' Keyboard initialisieren > > I2C_Init(I2C_100kHz) ' I2C-Bus mit 100kHz Initialisieren > > DCF_INIT() ' Initialisierung des DCF Modes > > > > Irq_SetVect(INT_TIM2COMP,INT_10ms) ' Interrupt Service Routine definieren für Key & DCF > > ' Timer2 erzeugt einen 10ms interrupt > > DCF_START() ' Starten des DCF Modes > > > > > > Do While 1 ' Endlosschleife > > ' Hier wird eigener code ausgeführt > > End While > > > > > > > > Nun meine Frage: Tastatur, LCD, DCF und ein Paar Ports schalten ist doch nicht zuviel > > verlangt? Oder habe ich einfach nur einen Denkfehler? > > > > Danke schon jetzt für die Antworten. > > > > Gruß > > Thomas > > Kommt doch immer darauf an, was Du da machst. Gib doch was aus, wenn irq_cnt > 1 ist, dann hast > Du ja einen Interrupt verpasst. Dann in der Hauptschleife sukzessive Anweisungen auskommentieren > bis man weniger als 10ms braucht. Dann hast Du Deine Antwort, was die Zeit frisst. > > Gruss Peter