Der Nachfolger des WDR-Computerclub mit Wolfgang Back und Wolfgang Rudolph - ...und immer ein Bit übrigbehalten!


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 

 Re: Einschaltdauer @manfred Kategorie: Programmierung Basic (von Ralph Eckardt - 31.05.2019 9:17)
 Als Antwort auf Einschaltdauer @manfred von Ralph Eckardt - 31.05.2019 8:09
> Hallo Manfred,
>
> ich habe aus deinen Softwarebeispielen folgenden Code kopiert.
>
> siehe Routine Mainloop ( das ist eine Testumgebung)
>
> was mach ich verkehrt.
>
> Falls du mal drüber gucken magst ?
>
> Danke
>      Ralph
>
>
> Define temperatur  as Word  ' Buffer für die gemessene Temperatur
> Define uhrzeit     as Word
> Define spruehdauer as BYTE         ' Variable Sprühdauer
> Define tropfdauer  as Byte
> Define keycode     as BYTE
> Define key_array   as BYTE
> Define key_1       ref key_array  at BIT[1]       ' Merker Für Wasserhan (Eimer)
> Define key_2       ref key_array  at BIT[2]
> Define key_3       ref key_array  at BIT[3]
> Define key_4       ref key_array  at BIT[4]
> Define key_5       ref key_array  at BIT[5]
> Define key_6       ref key_array  at BIT[6]
> Define key_f1      ref key_array  at BIT[7]        ' Merker für Wasserfall
> Define key_f2      ref key_array  at BIT[8]        ' Merker für Berieselung
>
> define BACKLIGHT   as Port[16]
>
> define SDA         as Port[9]
> define SCL         as Port[10]
> define EXTPORT     as byteport[4]
> define STATION_IO  as Byte[3]
> define LED1        as Bit[17]            ' Zeigt Zustand REL1 Wasserfall
> define LED2        as Bit[18]            ' Zeigt Zustand REL2 Berieselung
> define LED3        AS bit[19]            ' Zeigt Zustand REL3 Ventil Wasserfall
> define LED4        as Bit[20]            ' Zeigt Zustand REL4 Ventil Berieselung
> define REL1        as Bit[21]            ' Wasserfall    Ein/Aus
> define REL2        as Bit[22]            ' Berieselung   Ein/Aus
> define REl3        as Bit[23]            ' Ventil 24V    Nachfüllen Wasserfall
> define REL4        as Bit[24]            ' Ventil 24V    Nachfüllen Berieselung
>
> define DIGIPORTS   as Byteport[1]
> define PUMPE       as Port[1]  ' D1      ' Pumpe         Ein/Aus   ext Relaise
> define WASSERHAHN  as Port[2]  ' D2      ' Wasserhahn    Ein/Aus   ext Relaise
> define TROPFER     as Port[3]  ' D3      ' Ventil 24V    Tropfbewässerung
> define SPRUEHER    as Port[4]  ' D4      ' Ventil 24V    Sprühbewässerung
> define TANK        as Port[5]  ' D5      ' Ventil 24V    Haupttank
> define D6          as Port[6]
> define D7          as Port[7]
> define D8          as Port[8]
>
> define ADC1          ad[1]               ' Regensensor
> define ADC2          ad[2]               ' Ventilsignal  Wasserfall REL3 steuern
> define ADC3          ad[3]               ' Ventilsignal  Berieselng REL4 steuern
> define ADC4          ad[4]               ' Ventilsignal  Haupttank
> define ADC5          ad[5]
> define ADC6          ad[6]
> define ADC7          ad[7]
> define ADC8          ad[8]
>
> 'import "SHOW_BINARY.blib"
> import "GET_KEY.blib"
> import "DS2482_GENERIC.blib"
> import "DS1820_GENERIC.blib"
>
> #init
> EXTPORT=off
> STATION_IO=off
> EXTPORT=STATION_IO
>
> DIGIPORTS=off
> key_array=0
> SDA=ON
> SCL=ON
> BACKLIGHT=OFF
>
> spruehdauer = 5                           ' Sprüher laufen 5 Min
> tropfdauer=3
> LCD.INIT
> '---------------------------------
> ' zum testen
>
> hour=15
> minute=9
> second=1
>
> LED1=OFF
> REL1=OFF
> LED2=OFF
> REL2=OFF
> #MAINLOOP
>
>    IF SPRUEHER OR TROPFER THEN GOTO EIN
>    IF second=0 OR second=59 THEN
>       PAUSE 5
>       GOTO MAINLOOP
>    END IF
>
>    GET_TEMP()
>   '  SHOW_DATE_TIME()
>
>    'keycode=GET_KEY()
>    'IF keycode <255 THEN GET_TASTE
>
>
>    uhrzeit=hour*100+minute
>
>    IF uhrzeit =1510 THEN  GOTO EIN
>    GOTO WEITER
>
> #EIN
>    SPRUEHER=(minute MOD 10 < 5)
>    TROPFER=(minute MOD 10 < 3)
>    CHECK_PUMPE()
>
> '
> 'GOTO MAINLOOP
> LCD.INIT
> LCD.CLEAR
> LCD.POS 1,1
>
> 'LCD.PRINT "  AD1: "
> 'LCD.PRINT  ADC1     'AUSGABE
> '   IF ADC1 > 100 THEN
> '      LED3=ON
> '      REL3=on
> '     ' CHECK_PUMPE
> '   Else
> '     LED3=off
> '     REL3=OFF
> '    ' PUMPE=OFF
> '   End IF
> 'LCD.PRINT "    "
>
> #WEITER
>
>   IF (TROPFER =OFF and SPRUEHER=OFF) THEN PUMPE=OFF
>
>   LCD.INIT switchonly
>     LCD.CLEAR
>     LCD.POS 1,1
>     if HOUR<10 then LCD.PRINT "0"         'FÜHRENDE NULL SCHREIBEN
>    LCD.PRINT  HOUR & ":"                      'STUNDEN AUSGEBEN
>    if MINUTE<10 then LCD.PRINT "0"       'FÜHRENDE NULL SCHREIBEN
>    LCD.PRINT  MINUTE & ":"
>    if SECOND<10 then LCD.PRINT "0"       'FÜHRENDE NULL SCHREIBEN
>    LCD.PRINT  SECOND
>
>    IF TROPFER=ON THEN
>       LCD.PRINT " TR=on "
>    ELSE
>       LCD.PRINT " TR=off "
>    END IF
> LCD.POS 2,1
>    IF SPRUEHER=ON THEN
>       LCD.PRINT "SP=on"
>    ELSE
>       LCD.PRINT "SP=off"
>    END IF
>
> IF PUMPE THEN
>       LCD.PRINT " PU=on " & PUMPE
> ELSE
>       LCD.PRINT " PU=off " & PUMPE
> END IF
>       LCD.PRINT "   "
>       LCD.OFF


Nachtrag
Habe gesehen das die Relaise zur vollen Stunde schalten..was aber nicht die Lösung sein sollte.

p.s.
  bitte auch alle anderen Forenmittglieder um Beiträge
Danke und Gruß
       Ralph

 Antwort schreiben

Bisherige Antworten:

Re: Einschaltdauer @manfred (von Dietmar - 31.05.2019 9:37)
    Re: Einschaltdauer @manfred (von Ralph Eckardt - 31.05.2019 10:10)