also ... wenn ich mir die hilfe von Bascom zum thema debounce so ansehe, komme ich zu dem schluss, dass das so nicht gehen kann, wie du es eingegeben hast. ich denke du musst ein label setzten statt der sub-prozedur.
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
end ; ----->>>>> hier ein end
Programm : ; <--------------------------- hier das label
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
return ;<---------------------- hier das return
so ist es zumindest in der help beschrieben
Lesezeichen