Ich fasse das mal zusammen:
-Do...Loop mit Hauptprogramm
-LCD-ISR z.b. über Timer&Bit setzen
(Programm nicht getestet, sollte aber funktionieren)
Das LCD aktualisiert 2 mal pro Sekunde - das sollte eigendlich ausreichen...Code:$regfile = "m8def.dat" $crystal = 8000000 Config Portb.0 = Output Dim Anzeige as Bit Config Timer1 = Timer , Prescale = 256 Const Timervorgabe = 36736 'ca 2x / sec Enable Timer1 Enable Interrupts On Timer1 Timer_ISR Config Lcd = 16 * 1 Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portd.5 , Rs = Portd.4 Config Lcdbus = 4 Cursor Off Cls Do Toggle Portb.0 if Anzeige = 1 then Anzeige = 0 goto LCD_ISR End if Loop LCD_ISR: Locate 1 , 1 : Lcd "1,22929" Return Timer_ISR: Timer1 = 36736 Anzeige = 1 Return
Wenn du das Signal an deinem Ausgang (Portb.0) mit einem Oszi ansiehst wirst du sehen, dass immer wenn das LCD aktualisiert wird der Ausgang etwas "hängt" das lässt sich nur ändern, wenn du den Ausgang selber über einen Timer laufen lässt(ich weiß ja nicht wie zeitkritisch dein Programm wird).
Tobias







Zitieren
Lesezeichen