Hallo,
ich verzeifele fast an meinem LCD. Ich hab hier mal einen kleinen Teil meines Programms geposted. Darin soll momentan nichts anderes passieren, als dass wenn ich einen Taster drücke (von H zu L), die Subroutine aufgerufen werden soll und etwas anderes ins Display geschrieben wird.
Macht es aber nicht. Der Zustandswechsel an Portd.0 funktioniert, aber mit dem Display passiert nichts. Warum?
Komischerweise funktioniert es, wenn ich das ganze als Interrupt programmiere.
Wäre super, wenn mir da jemand einen Tip geben kann.Code:$regfile = "m8def.dat" $crystal = 3686400 'Quarz: 3,6864 MHz Ddrc = &B00000000 Ddrd = &B00000001 'Int0 als Eingang konfiguriert - Programmiertaste Portc = &B00001111 Portd.4 = 1 'Pull-Up von Int0 an Portd.3 = 1 'Pull-Up von PD3 an Config Scl = Portc.5 'SCL-Port auf Port C.5 Config Sda = Portc.4 'SDA-Port auf Port C.4 Config Lcd = 40 * 4 'Anzeigemodus 40 x 4 Zeichen Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portb.0 , E = Portb.1 , E2 = Portb.2 , Rs = Portb.3 Declare Sub Temperaturen 'Sub für Programmierung in zweiter Ebene Declare Sub Schaltzeiten 'Sub für Programmierung in zweiter Ebene Declare Sub Prog_auswahl 'Sub für Programmier-Auswahl Declare Sub Wert_hoch 'Sub Temperatur hochzählen Declare Sub Wert_runter 'Sub Temperatur runterzählen Declare Sub Speichern 'Werte speichern Declare Sub Pfeil_rechts 'Auswahl für Programmiermodus Pfeil nach rechts Declare Sub Pfeil_links 'Auswahl für Programmiermodus Pfeil nach links Declare Sub Programm Dim ___lcdno As Bit 'Umschaltbyte für Anzeige 0=Chip 1; 1=Chip 2 Dim W_adr_1 As Byte 'Schreibadresse vom PCF8574(1) Dim R_adr_1 As Byte 'Leseadresse vom PCF8574(1) Dim Dat_1 As Byte 'Datenwerte vom PCF8574(1) Dim W_adr_2 As Byte 'Schreibadresse vom PCF8574(2) Dim R_adr_2 As Byte 'Leseadresse vom PCF8574(2) Dim W_adr_3 As Byte 'Schreibadresse vom PCF8591(1) Dim R_adr_3 As Byte 'Leseadresse vom PCF8591(1) Dim T_boiler As Byte 'Temperatur vom Boiler Dim T_puffer As Byte 'Temperatur vom Puffer '******************** LCD initialisieren ___lcdno = 0 'auf Chip 1 schalten Initlcd 'die beiden oberen Zeilen initialisieren Cls Locate 1 , 1 Lcd "Ausen Vorlauf Boiler Puffer" 'Beschriftung der ersten Zeile Cursor Off Do ___lcdno = 0 'auf Chip 1 schalten Locate 2 , 1 Lcd "Test Test Test" Debounce Pind.4 , 0 , Programm , Sub Loop '******************** Programm Sub Programm Portd.0 = Not Portd.0 ___lcdno = 0 'auf Chip 1 schalten Initlcd 'die beiden oberen Zeilen initialisieren Cls Locate 1 , 1 Lcd "Programm" 'Beschriftung der ersten Zeile Waitms 200 End Sub End
Grüße
Enrico







 
			
			 
					
					
					
						 Zitieren
Zitieren
Lesezeichen