Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 3 FRAGEN ZU ZEITSCHALTPROGRAMM Kategorie: Programmierung Basic (von hecktor - 2.09.2005 14:50)
hecktor nutzt:  CC1-M-Unit V1.1



                            iCH BIN DOOF UND MUSS NUN EUCH FRAGEN: WAS MACH ICH FALSCH ?

                                                            ICH HABE 3 PROBLEME

define  LINE     byte[1]
define  CHAR     byte[1]
define  POS      byte[1]
define  BARS     byte[1]
define  BIN      byte[1]
define  DEZ      byte[1]
define LCD_INIT   &H101
define LCD_CLR    &H11D
define LCD_LINE1  &H125
define LCD_LINE2  &H12A
define LCD_POSL1  &H12F
define LCD_POSL2  &H133
define LCD_SCRL   &H13B
define LCD_SCRR   &H140
define LCD_BAR    &H145
define LCD_BIN    &H154
define LCD_DEZ    &H1C3
define LCD_WRT    &H1A4
define LCD_PRINT  &H179
define wiled1          port[1]
define waled2          port[2]
define schrled3        port[3]
define schlled4        port[4]
define ventled5        port[5]
define pumpled6        port[6]
define vschalter7      port[7]
define wschalter8      port[8]
define key_val  ad[8]
define ProgNr       byte[2]
define Wartezeit    byte[3] '
define Schritt      byte[4]
define x    byte[5]
define Bytefrei6    byte[6]
define wert1        byte[7]
define wert2        byte[8]
define wert12          word[4]
define wert3        byte[9]
define key          byte[10]
define Bit81_88     byte[11]
define Zaehler1     byte[12]
define Zaehler2     byte[13]
define Zykluszeit      byte[14]
define TimerAlt        word[8]
define wert1Bit0           Bit [49]
define wert1Bit1           Bit [50]
define wert1Bit2           Bit [51]
define wert1Bit3           Bit [52]
define wert1Bit4           Bit [53]
define wert1Bit5           Bit [54]
define wert1Bit6           Bit [55]
define wert1Bit7           Bit [56]
define FlankeZeitpuls      Bit[81]
define TastaturFlanke      Bit[82]
define AufrufbitKey7       Bit[83]'
define AufrufbitKey9       Bit[84]'
define BitFrei5            Bit[85]'
define BitFrei6            Bit[86]
define SekPuls             Bit[87]'
define LoeschLCD           Bit[88]
 sys lcd_init
 sys lcd_clr
 Zaehler1 = 127
 Zaehler2 = 65
#Anfang
 if ProgNr < 1 then goto ende12
 SekPuls  = OFF
 wert1 = second
 if wert1Bit0 = FlankeZeitpuls  then goto ende1
 FlankeZeitpuls = wert1Bit0
 SekPuls  = ON
 AufrufbitKey7  = OFF
 AufrufbitKey9  = OFF
#ende1
 if (Wartezeit = 0) then goto Schritt
 if (sekpuls = OFF) then goto Ende12
 Wartezeit = Wartezeit -1 '
 goto Ende12
#Schritt
 if (Schritt = 1) then goto Schritt1 '
 if (Schritt = 2) then goto Schritt2 '
 if (Schritt = 3) then goto Schritt3 '
 if (Schritt = 4) then goto Schritt4 '
 if (Schritt = 5) then goto Schritt5 '
 if (Schritt = 6) then goto Schritt6 '
 if (Schritt = 7) then goto Schritt7 '
 if (Schritt = 8) then goto Schritt8 '
 'WIE SAEGE ICH DEM PROGRAMM DAS vschalter7 und Key = 7 DAS SELBE AUSLÖSEN
 'if vschalter7 then key = 7 'funzt nicht
 Schritt = 1
 goto Ende12
#Schritt1
 ventled5 = OFF '
 Wartezeit = 10 '
 Goto Schrittweiter
#Schritt2 '
'if AufrufbitKey7 then goto SCHRITTWEITER  FUNKTIONIETRT HIER NICHT DESHALB DAS #VIBRATIONSABSCHALTUNG
 pumpled6 = OFF : wiled1 = ON : schrled3 = ON  '
 Wartezeit = 10'
 Goto Schrittweiter
#Schritt3 '
 schrled3 = OFF : wiled1 = OFF : waled2 = ON'
 Wartezeit = 10'x
 Goto Schrittweiter
#Schritt4 '
  waled2 = OFF :wiled1 = ON : schlled4 = ON :'
 Wartezeit = 10'
 Goto Schrittweiter
#Schritt5
  schlled4 = OFF : wiled1 = OFF :waled2 = ON
 Wartezeit = 10'
 Goto Schrittweiter
#Schritt6
 waled2 = OFF :ventled5 = ON
 Wartezeit = 5'
 Goto Schrittweiter
#Schritt7
 pumpled6 = ON
 Wartezeit = 5'
 goto Schrittweiter
#Schritt8
 Wartezeit = 5'
 if wschalter8 = OFF then goto Anfang
#Schrittweiter
 Schritt = Schritt + 1
#Ende12
 Zykluszeit = (Timer - TimerAlt)'
 TimerAlt = Timer
 gosub Tastatur  
 Goto LCD'        
#Tastatur
 gosub key_decode  
 if key < 199 then goto Taste
 TastaturFlanke = OFF
 x = 1
 Return
#Taste  
 if key =3 then goto plusvar
 if key =6 then goto MinusZaehler2  
 if ProgNr >< 1 then goto TastaturFlanke'
#TastaturFlanke'
 if TastaturFlanke = ON then Return '
 TastaturFlanke = ON
 if key =1 then goto ProgNrPlus  
 if ProgNr >< 1 then return '
 if Key = 7 then AufrufbitKey7 = ON
 if AufrufbitKey7 then goto Vibrationabschaltung
 if Key = 9 then AufrufbitKey9 = ON
 if AufrufbitKey9 then goto Runterfahren
 return
#key_decode
 key=255
#nochmal
 wert3 = key_val
 if wert3 > 240 then return
 Key = key -1                
 if wert3 = key_val then goto TasteAusgeben
 if Key > 240 then goto nochmal
 return                        
#TasteAusgeben
 if wert3>=0   then key=10  
 if wert3>14  then key=7    
 if wert3>36  then key=4  
 if wert3>57  then key=1  
 if wert3>70  then key=0  
 if wert3>100 then key=8  
 if wert3>122 then key=5  
 if wert3>142 then key=2  
 if wert3>163 then key=11
 if wert3>183 then key=9  
 if wert3>204 then key=6  
 if wert3>225 then key=3  
 return
#LCD
 if LoeschLCD = OFF then goto Anzeige
 LoeschLCD = OFF :sys LCD_CLR
#Anzeige
 if ProgNr =1 then goto LCDprg1
 if ProgNr =2 then goto LCDprg2
 SYS LCD_LINE1:sys LCD_PRINT:print"  WEIL NICHT ALLES IN EINE ZEILE PASST":
 for wert1=1 to 22
 SYS LCD_SCRL:pause 10
 sys LCD_LINE1 '
 wert1 = ProgNr :gosub Zahl1'        
 sys LCD_PRINT:print" dr": gosub ue : sys LCD_PRINT:print"cke Taste 1"
 sys LCD_LINE2 '
 sys LCD_PRINT:print"f":gosub ue:sys LCD_PRINT:print"r Prog 1 bis 7"
 goto Anfang '
#LCDprg1
 sys LCD_LINE1
 DEZ = ProgNr : SYS LCD_DEZ              
 sys LCD_PRINT:print"  warte "
 DEZ = Wartezeit : SYS LCD_DEZ : sys LCD_PRINT:print" sec"
 goto LCD67'
#LCDprg2
 sys LCD_LINE1 '
 DEZ = ProgNr : SYS LCD_DEZ              
 sys LCD_PRINT:print"  warte "
 DEZ = Wartezeit : SYS LCD_DEZ : sys LCD_PRINT:print" sec"
 goto LCD67
#LCD67
 sys LCD_LINE2 '
 sys LCD_PRINT:print"Schritt "
 DEZ = Schritt : SYS LCD_DEZ
 goto Anfang
#ProgNrPlus
 ProgNr = ProgNr + 1
 LoeschLCD = ON  '
 if ProgNr > 8 then ProgNr = 1
 return
#Vibrationabschaltung
schrled3 = OFF : schlled4 = OFF :wiled1 = OFF : waled2 = ON : return
'SCHRITTWETITER STATT SCHRLED3 U.S.W FUNKTIONIETRT HIER NUR EINMAL
#Runterfahren
'WAS MUSS HIER STEHEN DAS ICH WIEDER IN DAS ERSTE PROGRAMM (DRÜCKE 1-7)KOMME?
#PlusZaehler1 '
 Zaehler1 = Zaehler1 +1 :return
#MinusZaehler1 '
 Zaehler1 = Zaehler1 -1 :return
#PlusZaehler2 '
 Zaehler2 = Zaehler2 +1 :return
#MinusZaehler2 '
 Zaehler2 = Zaehler2 -1 :return
#PlusVar '
 Zaehler2 = Zaehler2 + x
 x = x + 1
 return
#Zahl5
 if wert12 <0 then gosub Minus else gosub space
 wert12 =  abs (wert12)
 if wert12 >= 10000 then CHAR = wert12 /10000 +&H30 else  CHAR = &H20
 SYS LCD_WRT
#Zahl4 '
 if wert12 >= 1000 then CHAR = wert12 MOD 10000 /1000 +&H30 else  CHAR = &H20
 SYS LCD_WRT
#Zahl3Word '
 if wert12 >= 100 then CHAR = wert12 MOD 1000 /100 +&H30 else  CHAR = &H20
 SYS LCD_WRT
 if wert12 >= 10 then CHAR = wert12 MOD 100 /10 +&H30 else  CHAR = &H20
 SYS LCD_WRT
 CHAR = wert12 MOD 10 +&H30
 SYS LCD_WRT
 Return
#Zahl3
 if wert1 >= 100 then CHAR = wert1/100 +&H30 else CHAR = &H20
 SYS LCD_WRT
#Zahl2 '
 if wert1 >= 10 then CHAR = wert1 MOD 100 /10 +&H30 else  CHAR = &H20
 SYS LCD_WRT
#Zahl1
 CHAR = wert1 mod 10 +&H30
 SYS LCD_WRT : Return
#Space CHAR = &H20 :SYS LCD_WRT :Return
#Plus  CHAR = &H2B :SYS LCD_WRT :Return
#Minus CHAR = &H2D :SYS LCD_WRT :Return
#ae    CHAR = &HE1 :SYS LCD_WRT :Return
#oe    CHAR = &HEF :SYS LCD_WRT :Return
#ue    CHAR = &HF5 :SYS LCD_WRT :Return
goto Anfang






 Antwort schreiben

Bisherige Antworten:

Re: 3 FRAGEN ZU ZEITSCHALTPROGRAMM (von ManfredW - 2.09.2005 16:20)
    Re: 3 FRAGEN ZU ZEITSCHALTPROGRAMM (von hecktor - 4.09.2005 0:20)
        Antwort siehe Email an Hecktor (von ManfredW - 4.09.2005 11:21)