Hi robert,
sorry, habe gar nicht gemerkt das ich nicht eingelogged war...![]()
So, hier nun der Code.
Die Merkerversion funktioniert komischer weise auch nicht.
Die Einstellungen in meinem Bascom (1.11.7.7 Vollversion) sind: 4 Bit, Atmega8 und ich Takte mit 4MHz.
Die Routine "Drei" wird über einen Merker angesprungen. Funktioniert aber auch nicht.Code:Config Lcdpin = Pin , E = Portd.1 , Rs = Portd.3 , Db7 = Portd.7 , Db6 = Portd.6 , Config Lcdpin = Pin , Db5 = Portd.5 , Db4 = Portd.4 Config Lcd = 16 * 4 Config Portc = Output Dim ___lcdno As Bit Dim Mbit As Bit Initlcd Cls Lcd "Eins" Haupt: Debounce Pinb.1 , 0 , Zwei , Sub Debounce Pinb.2 , 0 , Merker , Sub If Mbit = 1 Then Gosub Drei Goto Haupt Zwei: Locate 2 , 1 Lcd "Zwei" Portc.0 = Not Portc.0 Return Merker: Mbit = 1 Return Drei: Locate 3 , 1 Lcd "Drei" Mbit = 0 Portc.1 = Not Portc.1 Return EndIch habe es weiter oben missverständlich ausgedrückt. Mit "das funktioniert" meinte ich das Prinzip. Die Routine hatte ich zu dem Zeitpunkt noch nicht im AVR getestet.
Wie Du siehst schalte ich in den Unterroutinen "Zwei" und "Drei" je einen Portpin um. Das mache ich zur Kontrolle ob auch wirklich in die Unterroutine gesprungen wird.
Es wird hineingesprungen (die LEDs schalten brav um), aber auf dem LCD wird nichts ausgegeben.
Im Bascom Simulator genau das gleiche.
Ich hoffe Du findest was!
Gruß Bernd







Zitieren

Lesezeichen