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 

 jetzt noch zwei probleme :( Kategorie: Programmierung Basic (von STUDIO - 23.01.2005 15:43)
 Als Antwort auf übertragung in c-controlmit terminal.exe von STUDIO - 23.01.2005 0:29

nun habe ich zwei neue probleme:

1.mit dem lader der dos ide bekomme ich die ausgabe  das die c-control nicht antwortet.

2. mit dem program von dierk klappt zwar die übertragung,
    aber meine c-control startet das program nichtmehr...
    der quelltext kommt unten, evtl macht sich jemand die mühe und guckt ob er nen fehler findet....

 'Schildi-Home-Steuereung
'Version 1.0 Basic


'start
 'Definition Variabeln
           define userneondrin          bit[1]
           define userneondraussen      bit[2]
           define userhqldrin           bit[3]
           define userhqldraussenvorn   bit[4]
           define userhqldraussenhinten bit[5]
           define hilfezeitzehner       byte[6]
           define hilfezeiteiner        byte[7]
           define temp                  word[11]
           define hilfezeit             word[12]
           'Definition PORTS
         
           define neondrin          port[1]
           define neondraussen      port[2]
           define hqldrin           port[5]
           define hqldraussenvorn   port[3]
           define hqldraussenhinten port[4]
           
           'Definition AD_PORTS
           define temperaturdrin ad[1]




        'Definiton Keyboard
            define key_nr byte[2]
            define compare byte[3]

            define keyboard ad[8]

        'die Reihenfolge der Tasten auf dem Keyboard
             define KEY_ASTERIX 0
             define KEY_7       1
             define KEY_4       2
             define KEY_1       3
             define KEY_0       4
             define KEY_8       5
             define KEY_5       6
             define KEY_2       7
             define KEY_CROSS   8
             define KEY_9       9
             define KEY_6       10
             define KEY_3       11

         'Vergleichstabelle

           table keycodes
           0 23 46 68
           90 111 132 152
           173 193 214 235
           tabend


         'Defintion für Tastatur

           define lcd_buf byte[4]
           define lcd_param byte[5]

           define lcd_port byteport[2]
           define lcd_rs port[14]
           define lcd_rw port[13]
           define lcd_e port[15]

          #LCD_INIT
           ' alle ports 0
             lcd_port = OFF

           ' 8-Bit-Modus aktivieren
             lcd_param=&H38 : gosub LCD_WRITECMD

           ' mit 8-Bit-Command in 4-Bit-Modus umschalten
             lcd_port=&B00000010
             tog lcd_e
             tog lcd_e

           ' ab jetzt 4-Bit-Modus
             lcd_param = &H28 : gosub LCD_WRITECMD
             lcd_param = &H0C : gosub LCD_WRITECMD

           ' Display loeschen
             #LCD_CLS
               lcd_param = &H02 : gosub LCD_WRITECMD
               lcd_param = &H01 : gosub LCD_WRITECMD
               return

           ' Zeilenwechsel
             #LCD_GOTOLINE
               if lcd_param = 1 then lcd_param = &H80
               if lcd_param = 2 then lcd_param = &HC0
               goto LCD_WRITECMD

           ' LCD-Kommando
             #LCD_WRITECMD
               lcd_buf = OFF
               goto LCD_WRITE

           ' Zeichenausgabe
             #LCD_WRITECHAR
               lcd_buf = &B00100000

           ' Kommando oder Zeichen an Display senden
             #LCD_WRITE
               lcd_port = lcd_buf or (lcd_param shr 4) ' Hi-Nibble
               tog lcd_e
               tog lcd_e
               lcd_port = lcd_buf or (lcd_param and &H0F)  ' Lo-Nibble
               tog lcd_e
               tog lcd_e
              return

           '*** ASCII-Codes ***
             define A_ &H41
             define B_ &H42
             define C_ &H43
             define D_ &H44
             define E_ &H45
             define F_ &H46
             define G_ &H47
             define H_ &H48
             define I_ &H49
             define J_ &H4A
             define K_ &H4B
             define L_ &H4C
             define M_ &H4D
             define N_ &H4E
             define O_ &H4F
             define P_ &H50
             define Q_ &H51
             define R_ &H52
             define S_ &H53
             define T_ &H54
             define U_ &H55
             define V_ &H56
             define W_ &H57
             define X_ &H58
             define Y_ &H59
             define Z_ &H5A
             define zahl1_ &H31
             define zahl2_ &H32
             define zahl3_ &H33
             define zahl4_ &H34
             define zahl5_ &H35
             define LEERZ &H20
             define MINUS &H2D
             define NULL &H30
             define GLEICH &H3D
             define DOPPELPUNKT &H3A
             define PUNKT &H2E
         

 '   --------------Zeit / Datum einlesen und Speichern-------------------
#initialisieren
           userneondrin      =1
           userneondraussen  =1
           userhqldrin       =1
           userhqldraussenvorn=1
           userhqldraussenhinten=1
           hilfezeitzehner   =1
           hilfezeiteiner    =1
           temp              =1
           hilfezeit         =1
   
         
           neondrin          =off
   
           neondraussen      =off
           hqldrin           =off
           hqldraussenvorn   =off
           hqldraussenhinten =off



'Eingabe Stunde zehner
#Stunde

  gosub LCD_INIT
  pause 10
#SCHLEIFE
 gosub lcd_cls
  lcd_param = B_ : gosub LCD_WRITECHAR
  lcd_param = I_ : gosub LCD_WRITECHAR
  lcd_param = T_ : gosub LCD_WRITECHAR
  lcd_param = T_ : gosub LCD_WRITECHAR
  lcd_param = E_ : gosub LCD_WRITECHAR
  lcd_param = LEERZ : gosub LCD_WRITECHAR
  lcd_param = S_ : gosub LCD_WRITECHAR
  lcd_param = T_ : gosub LCD_WRITECHAR
  lcd_param = U_ : gosub LCD_WRITECHAR
  lcd_param = N_ : gosub LCD_WRITECHAR
  lcd_param = D_ : gosub LCD_WRITECHAR
  lcd_param = E_ : gosub LCD_WRITECHAR

  lcd_param = 2 : gosub LCD_GOTOLINE        ' Wechsel in die zweite Zeile

  lcd_param = E_ : gosub LCD_WRITECHAR
  lcd_param = I_ : gosub LCD_WRITECHAR
  lcd_param = N_ : gosub LCD_WRITECHAR
  lcd_param = G_ : gosub LCD_WRITECHAR
  lcd_param = E_ : gosub LCD_WRITECHAR
  lcd_param = B_ : gosub LCD_WRITECHAR
  lcd_param = E_ : gosub LCD_WRITECHAR
  lcd_param = N_ : gosub LCD_WRITECHAR

  pause 150


 #LOOP1


   for key_nr = 0 to 11
     looktab keycodes, key_nr, compare
     if abs(keyboard-compare) < 3 then goto HANDLE_KEY1
   next
   pause 20

 goto LOOP1

 #HANDLE_KEY1

  if key_nr = KEY_1 then hilfezeitzehner=1
  if key_nr = KEY_0 then hilfezeitzehner=0
  if key_nr = KEY_2 then hilfezeitzehner=2 else GOTO schleife

 
 gosub lcd_cls
  lcd_param = S_ : gosub LCD_WRITECHAR
  lcd_param = T_ : gosub LCD_WRITECHAR
  lcd_param = U_ : gosub LCD_WRITECHAR
  lcd_param = N_ : gosub LCD_WRITECHAR
  lcd_param = D_ : gosub LCD_WRITECHAR
  lcd_param = E_ : gosub LCD_WRITECHAR
  lcd_param = DOPPELPUNKT : gosub LCD_WRITECHAR
  lcd_param = LEERZ : gosub LCD_WRITECHAR
  lcd_param = hilfezeitzehner : gosub LCD_WRITECHAR

  Pause 50


 'Eingabe Stunde einer
 #SCHLEIFE2
 #LOOP2


   for key_nr = 0 to 11
     looktab keycodes, key_nr, compare
     if abs(keyboard-compare) < 3 then goto HANDLE_KEY2
   next
   pause 20

 goto LOOP2

 #HANDLE_KEY2

  if key_nr = KEY_7 then hilfezeiteiner=7
  if key_nr = KEY_4 then hilfezeiteiner=4
  if key_nr = KEY_1 then hilfezeiteiner=1
  if key_nr = KEY_0 then hilfezeiteiner=0
  if key_nr = KEY_8 then hilfezeiteiner=8
  if key_nr = KEY_5 then hilfezeiteiner=5
  if key_nr = KEY_2 then hilfezeiteiner=2
  if key_nr = KEY_9 then hilfezeiteiner=9
  if key_nr = KEY_6 then hilfezeiteiner=6
  if key_nr = KEY_3 then hilfezeiteiner=3 else goto schleife2

 
 gosub lcd_cls
  lcd_param = S_ : gosub LCD_WRITECHAR
  lcd_param = T_ : gosub LCD_WRITECHAR
  lcd_param = U_ : gosub LCD_WRITECHAR
  lcd_param = N_ : gosub LCD_WRITECHAR
  lcd_param = D_ : gosub LCD_WRITECHAR
  lcd_param = E_ : gosub LCD_WRITECHAR
  lcd_param = DOPPELPUNKT : gosub LCD_WRITECHAR
  lcd_param = LEERZ : gosub LCD_WRITECHAR
  lcd_param = hilfezeitzehner : gosub LCD_WRITECHAR
  lcd_param = hilfezeiteiner  : gosub LCD_WRITECHAR
  Pause 50


 'Berechnung Stunde
  hour=hilfezeitzehner*10+hilfezeiteiner



'Eingabe Minute zehner
#Minute


#Schleife3
 gosub lcd_cls
  lcd_param = B_ : gosub LCD_WRITECHAR
  lcd_param = I_ : gosub LCD_WRITECHAR
  lcd_param = T_ : gosub LCD_WRITECHAR
  lcd_param = T_ : gosub LCD_WRITECHAR
  lcd_param = E_ : gosub LCD_WRITECHAR
  lcd_param = LEERZ : gosub LCD_WRITECHAR
  lcd_param = M_ : gosub LCD_WRITECHAR
  lcd_param = I_ : gosub LCD_WRITECHAR
  lcd_param = N_ : gosub LCD_WRITECHAR
  lcd_param = U_ : gosub LCD_WRITECHAR
  lcd_param = T_ : gosub LCD_WRITECHAR
  lcd_param = E_ : gosub LCD_WRITECHAR

  lcd_param = 2 : gosub LCD_GOTOLINE        ' Wechsel in die zweite Zeile

  lcd_param = E_ : gosub LCD_WRITECHAR
  lcd_param = I_ : gosub LCD_WRITECHAR
  lcd_param = N_ : gosub LCD_WRITECHAR
  lcd_param = G_ : gosub LCD_WRITECHAR
  lcd_param = E_ : gosub LCD_WRITECHAR
  lcd_param = B_ : gosub LCD_WRITECHAR
  lcd_param = E_ : gosub LCD_WRITECHAR
  lcd_param = N_ : gosub LCD_WRITECHAR

  pause 150


 #LOOP3


   for key_nr = 0 to 11
     looktab keycodes, key_nr, compare
     if abs(keyboard-compare) < 3 then goto HANDLE_KEY3
   next
   pause 20

 goto LOOP3

 #HANDLE_KEY3

  if key_nr = KEY_1 then hilfezeitzehner=1
  if key_nr = KEY_0 then hilfezeitzehner=0
  if key_nr = KEY_2 then hilfezeitzehner=2 else goto schleife3

 gosub lcd_cls
  lcd_param = M_ : gosub LCD_WRITECHAR
  lcd_param = I_ : gosub LCD_WRITECHAR
  lcd_param = N_ : gosub LCD_WRITECHAR
  lcd_param = U_ : gosub LCD_WRITECHAR
  lcd_param = T_ : gosub LCD_WRITECHAR
  lcd_param = E_ : gosub LCD_WRITECHAR
  lcd_param = DOPPELPUNKT : gosub LCD_WRITECHAR
  lcd_param = LEERZ : gosub LCD_WRITECHAR
  lcd_param = hilfezeitzehner : gosub LCD_WRITECHAR

  Pause 50


 'Eingabe Minute einer
 #SCHLEIFE4
 #LOOP4


   for key_nr = 0 to 11
     looktab keycodes, key_nr, compare
     if abs(keyboard-compare) < 3 then goto HANDLE_KEY4
   next
   pause 20

 goto LOOP4

 #HANDLE_KEY4

  if key_nr = KEY_7 then hilfezeiteiner=7
  if key_nr = KEY_4 then hilfezeiteiner=4
  if key_nr = KEY_1 then hilfezeiteiner=1
  if key_nr = KEY_0 then hilfezeiteiner=0
  if key_nr = KEY_8 then hilfezeiteiner=8
  if key_nr = KEY_5 then hilfezeiteiner=5
  if key_nr = KEY_2 then hilfezeiteiner=2
  if key_nr = KEY_9 then hilfezeiteiner=9
  if key_nr = KEY_6 then hilfezeiteiner=6
  if key_nr = KEY_3 then hilfezeiteiner=3 else goto schleife4

 gosub lcd_cls
  lcd_param = M_ : gosub LCD_WRITECHAR
  lcd_param = I_ : gosub LCD_WRITECHAR
  lcd_param = N_ : gosub LCD_WRITECHAR
  lcd_param = U_ : gosub LCD_WRITECHAR
  lcd_param = T_ : gosub LCD_WRITECHAR
  lcd_param = E_ : gosub LCD_WRITECHAR
  lcd_param = DOPPELPUNKT : gosub LCD_WRITECHAR
  lcd_param = LEERZ : gosub LCD_WRITECHAR
  lcd_param = hilfezeitzehner : gosub LCD_WRITECHAR
  lcd_param = hilfezeiteiner  : gosub LCD_WRITECHAR
  Pause 50


 'Berechnung Minute
  minute=hilfezeitzehner*10+hilfezeiteiner


'Eingabe Tag zehner
#schleife5
#Tag

 gosub LCD_CLS
  lcd_param = B_ : gosub LCD_WRITECHAR
  lcd_param = I_ : gosub LCD_WRITECHAR
  lcd_param = T_ : gosub LCD_WRITECHAR
  lcd_param = T_ : gosub LCD_WRITECHAR
  lcd_param = E_ : gosub LCD_WRITECHAR
  lcd_param = LEERZ : gosub LCD_WRITECHAR
  lcd_param = T_ : gosub LCD_WRITECHAR
  lcd_param = A_ : gosub LCD_WRITECHAR
  lcd_param = G_ : gosub LCD_WRITECHAR

  lcd_param = 2 : gosub LCD_GOTOLINE        ' Wechsel in die zweite Zeile

  lcd_param = E_ : gosub LCD_WRITECHAR
  lcd_param = I_ : gosub LCD_WRITECHAR
  lcd_param = N_ : gosub LCD_WRITECHAR
  lcd_param = G_ : gosub LCD_WRITECHAR
  lcd_param = E_ : gosub LCD_WRITECHAR
  lcd_param = B_ : gosub LCD_WRITECHAR
  lcd_param = E_ : gosub LCD_WRITECHAR
  lcd_param = N_ : gosub LCD_WRITECHAR

  pause 150


 #LOOP6


   for key_nr = 0 to 11
     looktab keycodes, key_nr, compare
     if abs(keyboard-compare) < 3 then goto HANDLE_KEY6
   next
   pause 20

 goto LOOP6

 #HANDLE_KEY6

  if key_nr = KEY_1 then hilfezeitzehner=1
  if key_nr = KEY_0 then hilfezeitzehner=0
  if key_nr = KEY_2 then hilfezeitzehner=2
  if key_nr = KEY_3 then hilfezeitzehner=3 else goto schleife5
 
 gosub lcd_cls
  lcd_param = T_ : gosub LCD_WRITECHAR
  lcd_param = A_ : gosub LCD_WRITECHAR
  lcd_param = G_ : gosub LCD_WRITECHAR
  lcd_param = DOPPELPUNKT : gosub LCD_WRITECHAR
  lcd_param = LEERZ : gosub LCD_WRITECHAR
  lcd_param = hilfezeitzehner : gosub LCD_WRITECHAR

  Pause 50


 'Eingabe Tag einer
 #schleife6
 #LOOP5


   for key_nr = 0 to 11
     looktab keycodes, key_nr, compare
     if abs(keyboard-compare) < 3 then goto HANDLE_KEY5
   next
   pause 20

 goto LOOP5

 #HANDLE_KEY5

  if key_nr = KEY_7 then hilfezeiteiner=7
  if key_nr = KEY_4 then hilfezeiteiner=4
  if key_nr = KEY_1 then hilfezeiteiner=1
  if key_nr = KEY_0 then hilfezeiteiner=0
  if key_nr = KEY_8 then hilfezeiteiner=8
  if key_nr = KEY_5 then hilfezeiteiner=5
  if key_nr = KEY_2 then hilfezeiteiner=2
  if key_nr = KEY_9 then hilfezeiteiner=9
  if key_nr = KEY_6 then hilfezeiteiner=6
  if key_nr = KEY_3 then hilfezeiteiner=3 ELSE GOTO schleife6

 gosub lcd_cls
  lcd_param = T_ : gosub LCD_WRITECHAR
  lcd_param = A_ : gosub LCD_WRITECHAR
  lcd_param = G_ : gosub LCD_WRITECHAR
  lcd_param = DOPPELPUNKT : gosub LCD_WRITECHAR
  lcd_param = LEERZ : gosub LCD_WRITECHAR
  lcd_param = hilfezeitzehner : gosub LCD_WRITECHAR
  lcd_param = hilfezeiteiner  : gosub LCD_WRITECHAR
  Pause 50


 'Berechnung tag
  day=hilfezeitzehner*10+hilfezeiteiner


'Eingabe Monat zehner
#schleife7
#Monat

 gosub lcd_cls
  lcd_param = B_ : gosub LCD_WRITECHAR
  lcd_param = I_ : gosub LCD_WRITECHAR
  lcd_param = T_ : gosub LCD_WRITECHAR
  lcd_param = T_ : gosub LCD_WRITECHAR
  lcd_param = E_ : gosub LCD_WRITECHAR
  lcd_param = LEERZ : gosub LCD_WRITECHAR
  lcd_param = M_ : gosub LCD_WRITECHAR
  lcd_param = O_ : gosub LCD_WRITECHAR
  lcd_param = N_ : gosub LCD_WRITECHAR
  lcd_param = A_ : gosub LCD_WRITECHAR
  lcd_param = T_ : gosub LCD_WRITECHAR

  lcd_param = 2 : gosub LCD_GOTOLINE        ' Wechsel in die zweite Zeile

  lcd_param = E_ : gosub LCD_WRITECHAR
  lcd_param = I_ : gosub LCD_WRITECHAR
  lcd_param = N_ : gosub LCD_WRITECHAR
  lcd_param = G_ : gosub LCD_WRITECHAR
  lcd_param = E_ : gosub LCD_WRITECHAR
  lcd_param = B_ : gosub LCD_WRITECHAR
  lcd_param = E_ : gosub LCD_WRITECHAR
  lcd_param = N_ : gosub LCD_WRITECHAR

  pause 150


 #LOOP7


   for key_nr = 0 to 11
     looktab keycodes, key_nr, compare
     if abs(keyboard-compare) < 3 then goto HANDLE_KEY7
   next
   pause 20

 goto LOOP7

 #HANDLE_KEY7

  if key_nr = KEY_1 then hilfezeitzehner=1
  if key_nr = KEY_0 then hilfezeitzehner=0
  if key_nr = KEY_2 then hilfezeitzehner=2
  if key_nr = KEY_3 then hilfezeitzehner=3 else goto schleife7
 
 gosub lcd_cls
  lcd_param = M_ : gosub LCD_WRITECHAR
  lcd_param = O_ : gosub LCD_WRITECHAR
  lcd_param = N_ : gosub LCD_WRITECHAR
  lcd_param = A_ : gosub LCD_WRITECHAR
  lcd_param = T_ : gosub LCD_WRITECHAR
  lcd_param = DOPPELPUNKT : gosub LCD_WRITECHAR
  lcd_param = LEERZ : gosub LCD_WRITECHAR
  lcd_param = hilfezeitzehner : gosub LCD_WRITECHAR

  Pause 50


 'Eingabe Monat einer
 #schleife8
 #LOOP8


   for key_nr = 0 to 11
     looktab keycodes, key_nr, compare
     if abs(keyboard-compare) < 3 then goto HANDLE_KEY8
   next
   pause 20

 goto LOOP8

 #HANDLE_KEY8

  if key_nr = KEY_7 then hilfezeiteiner=7
  if key_nr = KEY_4 then hilfezeiteiner=4
  if key_nr = KEY_1 then hilfezeiteiner=1
  if key_nr = KEY_0 then hilfezeiteiner=0
  if key_nr = KEY_8 then hilfezeiteiner=8
  if key_nr = KEY_5 then hilfezeiteiner=5
  if key_nr = KEY_2 then hilfezeiteiner=2
  if key_nr = KEY_9 then hilfezeiteiner=9
  if key_nr = KEY_6 then hilfezeiteiner=6
  if key_nr = KEY_3 then hilfezeiteiner=3 else goto schleife8

  lcd_param = M_ : gosub LCD_WRITECHAR
  lcd_param = O_ : gosub LCD_WRITECHAR
  lcd_param = N_ : gosub LCD_WRITECHAR
  lcd_param = A_ : gosub LCD_WRITECHAR
  lcd_param = T_ : gosub LCD_WRITECHAR
  lcd_param = DOPPELPUNKT : gosub LCD_WRITECHAR
  lcd_param = LEERZ : gosub LCD_WRITECHAR
  lcd_param = hilfezeitzehner : gosub LCD_WRITECHAR
  lcd_param = hilfezeiteiner  : gosub LCD_WRITECHAR
  Pause 50


 'Berechnung Monat
  month=hilfezeitzehner*10+hilfezeiteiner




  '----------------------------Beginn Hauptprogramm-------------------------

'Userinterface/ ZEIT / VERTIELER


#USERINTERFACE

#LOOPuserinterface


   for key_nr = 0 to 11
     looktab keycodes, key_nr, compare
     if abs(keyboard-compare) < 3 then goto HANDLE_KEYuserinterface
   next
   pause 20

 goto LOOPuserinterface

 #HANDLE_KEYuserinterface

  if key_nr = KEY_CROSS THEN GOTO menu
     
   gosub lcd_cls
    lcd_param = S_ : gosub LCD_WRITECHAR
    lcd_param = Y_ : gosub LCD_WRITECHAR
    lcd_param = S_ : gosub LCD_WRITECHAR
    lcd_param = T_ : gosub LCD_WRITECHAR
    lcd_param = E_ : gosub LCD_WRITECHAR
    lcd_param = M_ : gosub LCD_WRITECHAR
    lcd_param = LEERZ : gosub LCD_WRITECHAR
    lcd_param = L_ : gosub LCD_WRITECHAR
    lcd_param = A_ : gosub LCD_WRITECHAR
    lcd_param = E_ : gosub LCD_WRITECHAR
    lcd_param = U_ : gosub LCD_WRITECHAR
    lcd_param = F_ : gosub LCD_WRITECHAR
    lcd_param = T_ : gosub LCD_WRITECHAR



   lcd_param = 2 : gosub LCD_GOTOLINE        ' Wechsel in die zweite Zeile

    lcd_param = LEERZ : gosub LCD_WRITECHAR
    lcd_param = LEERZ : gosub LCD_WRITECHAR
    lcd_param = LEERZ : gosub LCD_WRITECHAR
    lcd_param = LEERZ : gosub LCD_WRITECHAR
    lcd_param = HOUR : gosub LCD_WRITECHAR
    lcd_param = DOPPELPUNKT : gosub LCD_WRITECHAR
    lcd_param = MINUTE : gosub LCD_WRITECHAR
    lcd_param = DOPPELPUNKT : gosub LCD_WRITECHAR
    lcd_param = SECOND : gosub LCD_WRITECHAR


IF DAY=1 THEN GOTO fruehling
IF DAY=2 THEN GOTO fruehling
IF DAY=3 THEN GOTO fruehling
IF DAY=4 THEN GOTO fruehling
IF DAY=5 THEN GOTO sommer
IF DAY=6 THEN GOTO sommer
IF DAY=7 THEN GOTO sommer
IF DAY=8 THEN GOTO sommer
IF DAY=9 THEN GOTO herbst
IF DAY=10 THEN GOTO herbst
IF DAY=11 THEN GOTO winter
IF DAY=12 THEN GOTO Winter


#fruehling
   gosub lcd_cls
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = F_ : gosub LCD_WRITECHAR
    lcd_param = R_ : gosub LCD_WRITECHAR
    lcd_param = U_ : gosub LCD_WRITECHAR
    lcd_param = E_ : gosub LCD_WRITECHAR
    lcd_param = H_ : gosub LCD_WRITECHAR
    lcd_param = L_ : gosub LCD_WRITECHAR
    lcd_param = I_ : gosub LCD_WRITECHAR
    lcd_param = N_ : gosub LCD_WRITECHAR
    lcd_param = G_ : gosub LCD_WRITECHAR
   pause 50    

hilfezeit=hour*100+minute

if hilfezeit>=730 and hilfezeit<=1830 and userneondrin=1           THEN neondrin=on ELSE neondrin=off
if hilfezeit>=730 and hilfezeit<=1830 and userneondraussen=1       THEN neondraussen=on ELSE neondrin=off
if hilfezeit>=830 and hilfezeit<=1500 and userhqldrin=1            THEN hqldrin=on ELSE hqldrin=off
if hilfezeit>=1300 and hilfezeit<=1500 and userhqldraussenvorn=1   THEN hqldraussenvorn=on ELSE hqldraussenvorn=off
if hilfezeit>=1500 and hilfezeit<=1630 and userhqldraussenhinten=1 THEN hqldraussenhinten=on ELSE neondrin=off
goto temperatur

#sommer
   gosub lcd_cls
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = S_ : gosub LCD_WRITECHAR
    lcd_param = O_ : gosub LCD_WRITECHAR
    lcd_param = M_ : gosub LCD_WRITECHAR
    lcd_param = M_ : gosub LCD_WRITECHAR
    lcd_param = E_ : gosub LCD_WRITECHAR
    lcd_param = R_ : gosub LCD_WRITECHAR
   pause 50  
   
hilfezeit=hour*100+minute

if hilfezeit>=630 and hilfezeit<=2030 and userneondrin=1           THEN neondrin=on ELSE neondrin=off
if hilfezeit>=630 and hilfezeit<=2030 and userneondraussen=1       THEN neondraussen=on ELSE neondrin=off
if hilfezeit>=730 and hilfezeit<=1230 and userhqldrin=1            THEN hqldrin=on ELSE hqldrin=off
if hilfezeit>=1100 and hilfezeit<=1600 and userhqldraussenvorn=1   THEN hqldraussenvorn=on ELSE hqldraussenvorn=off
if hilfezeit>=1400 and hilfezeit<=1830 and userhqldraussenhinten=1 THEN hqldraussenhinten=on ELSE neondrin=off

goto temperatur



#herbst
   gosub lcd_cls
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = H_ : gosub LCD_WRITECHAR
    lcd_param = E_ : gosub LCD_WRITECHAR
    lcd_param = R_ : gosub LCD_WRITECHAR
    lcd_param = B_ : gosub LCD_WRITECHAR
    lcd_param = S_ : gosub LCD_WRITECHAR
    lcd_param = T_ : gosub LCD_WRITECHAR
   
   pause 50
hilfezeit=hour*100+minute

if hilfezeit>=745 and hilfezeit<=1800 and userneondrin=1           THEN neondrin=on ELSE neondrin=off
if hilfezeit>=745 and hilfezeit<=1800 and userneondraussen=1       THEN neondraussen=on ELSE neondrin=off
if hilfezeit>=830 and hilfezeit<=1030 and userhqldrin=1            THEN hqldrin=on ELSE hqldrin=off
if hilfezeit>=1000 and hilfezeit<=1200 and userhqldraussenvorn=1   THEN hqldraussenvorn=on ELSE hqldraussenvorn=off
if hilfezeit>=1100 and hilfezeit<=1330 and userhqldraussenhinten=1 THEN hqldraussenhinten=on ELSE neondrin=off
GOTO temperatur

#winter

   gosub lcd_cls
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = W_ : gosub LCD_WRITECHAR
    lcd_param = I_ : gosub LCD_WRITECHAR
    lcd_param = N_ : gosub LCD_WRITECHAR
    lcd_param = T_ : gosub LCD_WRITECHAR
    lcd_param = E_ : gosub LCD_WRITECHAR
    lcd_param = R_ : gosub LCD_WRITECHAR

   pause 50
hilfezeit=hour*100+minute

if hilfezeit>=900 and hilfezeit<=1700 and userneondrin=1           THEN neondrin=on ELSE neondrin=off
if hilfezeit>=900 and hilfezeit<=1700 and userneondraussen=1       THEN neondraussen=on ELSE neondrin=off
if hilfezeit>=1000 and hilfezeit<=1100 and userhqldrin=1           THEN hqldrin=on ELSE hqldrin=off
if hilfezeit>=1100 and hilfezeit<=1200 and userhqldraussenvorn=1   THEN hqldraussenvorn=on ELSE hqldraussenvorn=off
if hilfezeit>=1200 and hilfezeit<=1330 and userhqldraussenhinten=1 THEN hqldraussenhinten=on ELSE neondrin=off
GOTO temperatur



'Temperatur einleisen/anzeigen)
#Temperatur
   
    temp=10*(temperaturdrin-50)/2
   
gosub lcd_cls
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = T_ : gosub LCD_WRITECHAR
    lcd_param = E_ : gosub LCD_WRITECHAR
    lcd_param = M_ : gosub LCD_WRITECHAR
    lcd_param = P_ : gosub LCD_WRITECHAR
    lcd_param = E_ : gosub LCD_WRITECHAR
    lcd_param = R_ : gosub LCD_WRITECHAR
    lcd_param = A_ : gosub LCD_WRITECHAR
    lcd_param = T_ : gosub LCD_WRITECHAR
    lcd_param = U_ : gosub LCD_WRITECHAR
    lcd_param = R_ : gosub LCD_WRITECHAR

lcd_param = 2 : gosub LCD_GOTOLINE        ' Wechsel in die zweite Zeile

    lcd_param = LEERZ : gosub LCD_WRITECHAR
    lcd_param = LEERZ : gosub LCD_WRITECHAR
    lcd_param = LEERZ : gosub LCD_WRITECHAR
    lcd_param = LEERZ : gosub LCD_WRITECHAR
    lcd_param = LEERZ : gosub LCD_WRITECHAR
    lcd_param = LEERZ : gosub LCD_WRITECHAR
    lcd_param = temp/10 : gosub LCD_WRITECHAR
    lcd_param = PUNKT : gosub LCD_WRITECHAR
    lcd_param = temp MOD 10 : gosub LCD_WRITECHAR
   pause 50



USERINTERFACE

'-------------------------------Ende Hauptprogramm----------------------------------

#Menu
hilfezeiteiner=15
gosub lcd_cls
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = M_ : gosub LCD_WRITECHAR
    lcd_param = E_ : gosub LCD_WRITECHAR
    lcd_param = N_ : gosub LCD_WRITECHAR
    lcd_param = U_ : gosub LCD_WRITECHAR
   
 #LOOPmenu


   for key_nr = 0 to 11
     looktab keycodes, key_nr, compare
     if abs(keyboard-compare) < 3 then goto HANDLE_KEYmenu
   next
   pause 20

 goto LOOPmenu

 #HANDLE_KEYmenu

  if key_nr = KEY_ASTERIX THEN GOTO lampenaus
  if key_nr = key_1 THEN GOTO neustart else GOTO menu
 
 
 
#lampenaus
 
 
  gosub lcd_cls
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = L_ : gosub LCD_WRITECHAR
    lcd_param = A_ : gosub LCD_WRITECHAR
    lcd_param = M_ : gosub LCD_WRITECHAR
    lcd_param = P_ : gosub LCD_WRITECHAR
    lcd_param = E_ : gosub LCD_WRITECHAR
    lcd_param = N_ : gosub LCD_WRITECHAR
    lcd_param = LEERZ : gosub LCD_WRITECHAR
    lcd_param = A_ : gosub LCD_WRITECHAR
    lcd_param = U_ : gosub LCD_WRITECHAR
    lcd_param = S_ : gosub LCD_WRITECHAR

lcd_param = 2 : gosub LCD_GOTOLINE        ' Wechsel in die zweite Zeile

    lcd_param = zahl1_ : gosub LCD_WRITECHAR
    lcd_param = LEERZ : gosub LCD_WRITECHAR
    lcd_param = zahl2_ : gosub LCD_WRITECHAR
    lcd_param = LEERZ : gosub LCD_WRITECHAR
    lcd_param = zahl3_ : gosub LCD_WRITECHAR
    lcd_param = LEERZ : gosub LCD_WRITECHAR
    lcd_param = zahl4_ : gosub LCD_WRITECHAR
    lcd_param = LEERZ : gosub LCD_WRITECHAR
    lcd_param = zahl5_ :gosub LCD_WRITECHAR
   
#LOOPlampenaus


   for key_nr = 0 to 11
     looktab keycodes, key_nr, compare
     if abs(keyboard-compare) < 3 then goto HANDLE_KEYlampenaus
   next
   pause 20

 goto LOOPlampenaus

 #HANDLE_KEYlampenaus

  if key_nr = KEY_CROSS THEN GOTO lampenein
  if key_nr = key_1 THEN USERNEONDRIN         =0
  if key_nr = key_2 THEN USERNEONDRAUSSEN     =0
  if key_nr = key_3 THEN USERHQLDRIN          =0
  if key_nr = key_4 THEN USERHQLDRAUSSENVORN  =0
  if key_nr = key_5 THEN USERHQLDRAUSSENHINTEN=0 else goto lampenaus
 
 
 
 
 
 
 
 
#lampenein

 
 
  gosub lcd_cls
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = leerz : gosub LCD_WRITECHAR
    lcd_param = L_ : gosub LCD_WRITECHAR
    lcd_param = A_ : gosub LCD_WRITECHAR
    lcd_param = M_ : gosub LCD_WRITECHAR
    lcd_param = P_ : gosub LCD_WRITECHAR
    lcd_param = E_ : gosub LCD_WRITECHAR
    lcd_param = N_ : gosub LCD_WRITECHAR
    lcd_param = LEERZ : gosub LCD_WRITECHAR
    lcd_param = E_ : gosub LCD_WRITECHAR
    lcd_param = I_ : gosub LCD_WRITECHAR
    lcd_param = N_ : gosub LCD_WRITECHAR

lcd_param = 2 : gosub LCD_GOTOLINE        ' Wechsel in die zweite Zeile

    lcd_param = zahl1_ : gosub LCD_WRITECHAR
    lcd_param = LEERZ : gosub LCD_WRITECHAR
    lcd_param = zahl2_ : gosub LCD_WRITECHAR
    lcd_param = LEERZ : gosub LCD_WRITECHAR
    lcd_param = zahl3_ : gosub LCD_WRITECHAR
    lcd_param = LEERZ : gosub LCD_WRITECHAR
    lcd_param = zahl4_ : gosub LCD_WRITECHAR
    lcd_param = LEERZ : gosub LCD_WRITECHAR
    lcd_param = zahl5_ :gosub LCD_WRITECHAR
   
#LOOPlampenein


   for key_nr = 0 to 11
     looktab keycodes, key_nr, compare
     if abs(keyboard-compare) < 3 then goto HANDLE_KEYlampenein
   next
   pause 20

 goto LOOPlampenein

 #HANDLE_KEYlampenein

  if key_nr = KEY_ASTERIX THEN GOTO USERINTERFACE
  if key_nr = key_1 THEN USERNEONDRIN         =1
  if key_nr = key_2 THEN USERNEONDRAUSSEN     =1
  if key_nr = key_3 THEN USERHQLDRIN          =1
  if key_nr = key_4 THEN USERHQLDRAUSSENVORN  =1
  if key_nr = key_5 THEN USERHQLDRAUSSENHINTEN=1 else goto lampenein
 

#neustart

 
 
  gosub lcd_cls
    lcd_param = S_ : gosub LCD_WRITECHAR
    lcd_param = Y_ : gosub LCD_WRITECHAR
    lcd_param = S_ : gosub LCD_WRITECHAR
    lcd_param = T_ : gosub LCD_WRITECHAR
    lcd_param = E_ : gosub LCD_WRITECHAR
    lcd_param = M_ : gosub LCD_WRITECHAR
    lcd_param = Leerz : gosub LCD_WRITECHAR
    lcd_param = N_ : gosub LCD_WRITECHAR
    lcd_param = E_ : gosub LCD_WRITECHAR
    lcd_param = U_ : gosub LCD_WRITECHAR
    lcd_param = S_ : gosub LCD_WRITECHAR
    lcd_param = T_ : gosub LCD_WRITECHAR
    lcd_param = A_ : gosub LCD_WRITECHAR
    lcd_param = R_ : gosub LCD_WRITECHAR
    lcd_param = T_ : gosub LCD_WRITECHAR

lcd_param = 2 : gosub LCD_GOTOLINE        ' Wechsel in die zweite Zeile

    lcd_param = J_ : gosub LCD_WRITECHAR
    lcd_param = A_ : gosub LCD_WRITECHAR
    lcd_param = LEERZ : gosub LCD_WRITECHAR
    lcd_param = ZAHL2_ : gosub LCD_WRITECHAR
    lcd_param = LEERZ : gosub LCD_WRITECHAR
    lcd_param = LEERZ : gosub LCD_WRITECHAR
    lcd_param = LEERZ : gosub LCD_WRITECHAR
    lcd_param = LEERZ : gosub LCD_WRITECHAR
    lcd_param = LEERZ :gosub LCD_WRITECHAR
    lcd_param = LEERZ : gosub LCD_WRITECHAR
    lcd_param = N_    : gosub LCD_WRITECHAR
    lcd_param = E_ : gosub LCD_WRITECHAR
    lcd_param = I_ : gosub LCD_WRITECHAR
    lcd_param = N_ : gosub LCD_WRITECHAR
    lcd_param = LEERZ : gosub LCD_WRITECHAR
    lcd_param = ZAHL3_ : gosub LCD_WRITECHAR

   
#LOOPneustart


   for key_nr = 0 to 11
     looktab keycodes, key_nr, compare
     if abs(keyboard-compare) < 3 then goto HANDLE_KEYneustart
   next
   pause 20

 goto LOOPneustart

 #HANDLE_KEYneustart

 
  if key_nr = key_2 THEN GOTO initialisieren
  if key_nr = key_3 THEN GOTO USERINTERFACE else GOTO neustart
 
END


Danke im voraus!


 Antwort schreiben

Bisherige Antworten:

Re: jetzt noch zwei probleme :( (von Dietmar - 23.01.2005 16:40)
Re: jetzt noch zwei probleme :( (von Achim - 23.01.2005 16:32)
    Re: jetzt noch zwei probleme :( (von STUDIO - 23.01.2005 18:22)