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 

 Einschaltdauer @manfred Kategorie: Programmierung Basic (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

 Antwort schreiben

Bisherige Antworten:

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