Forum: Mikrocontroller und Digitale Elektronik Bascom Wert setzen


von Christoph (Gast)


Angehängte Dateien:

Lesenswert?

Moin Moin!


Ich bin gerade dabei eine Uhr zu bauen und habe dafuer den Grundcode von 
Blackstrom verwendet! Nun möchte ich das zu bestimmten zeiten ein Gong 
ertönt. Das mach ich dann mit:

If Frueh = 1 Or Mittag = 1 Then
   Relais = 1
   Else
   Relais = 0
   End If

Frueh und Mittag wollte ich nun so binden:

Dim Frueh As Bit
Dim Mittag As Bit

Frueh = Zh_stunde = 0 And Zl_stunde = 8 And Zh_minute = 5 And Zl_minute 
= 5

Mittag = Zh_stunde = 1 And Zl_stunde = 1 And Zh_minute = 3 And Zl_minute 
= 5

wenn ich die den kram mit der AND verknüpfung direkt in die If Then 
kopiere geht es! Jedoch nur die Zeit nach dem OR, darum wollt ich das 
nun mal mit Frueh und Mittag probieren!

Also es geht nun darum:

Wieso sagt bascom hier einen fehler?

Frueh = Zh_stunde = 0 And Zl_stunde = 8 And Zh_minute = 5 And Zl_minute 
= 5

Da sage ich doch das Frueh = 1 ist, wenn dieser Zustand eintritt oder? 
Ist bestimmt irgendwie ne Klammer oderso zu wenig oder?

MfG!

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Bascom unterstützt nicht beliebig komplexe Ausdrücke. Du wirst Deine 
Verknüpfungen in Einzelanweisungen aufdröseln müssen.

von Christoph (Gast)


Lesenswert?

Wieso funktioniert das denn so nicht:

Dim F1 As Bit
Dim F2 As Bit
Dim M1 As Bit
Dim M2 As Bit
Dim Fr As Bit
Dim Mi As Bit




F1 = Zh_stunde = 0 And Zl_stunde = 8
F2 = Zh_minute = 5 And Zl_minute = 5
M1 = Zh_stunde = 1 And Zl_stunde = 1
M2 = Zh_minute = 3 And Zl_minute = 5

Fr = F1 And F2
Mi = M1 And M2

If Fr = 1 Or Mi = 1 Then
   Relais = 1
   Else
   Relais = 0
   End If


MfG

von Thomas Kiss (Gast)


Lesenswert?

Ich denke so gehts : nur bsp


F1 = Zh_stunde
F2 = Zh_minute

If F1=8 and F2=5 then
M1=1

von Weingut P. (weinbauer)


Lesenswert?

Bit und Werte größer 1 passt nicht zusammen.
Bit kann nur 1 oder 0 sein.
Für Werte bis 255 sind Byte- , bis 65535 Wordvariablen

von Christoph (Gast)


Lesenswert?

habs geschafft!!

Dim F1 As Byte
Dim F2 As Byte
Dim F3 As Byte
Dim F4 As Byte
Dim Fr As Bit
Dim Mi As Bit
Dim Mi2 As Bit
Dim Ka As Bit

If F1 = 0 And F2 = 8 And F3 = 5 And F4 = 5 Then
   Fr = 1
   Else
   Fr = 0
   End If

If F1 = 1 And F2 = 1 And F3 = 3 And F4 = 5 Then
   Mi = 1
   Else
   Mi = 0
   End If

   If F1 = 1 And F2 = 2 And F3 = 1 And F4 = 5 Then
   Mi2 = 1
   Else
   Mi2 = 0
   End If

   If F1 = 1 And F2 = 4 And F3 = 0 And F4 = 0 Then
   Ka = 1
   Else
   Ka = 0
   End If





If Fr = 1 Or Mi = 1 Or Mi2 = 1 Or Ka = 1 Then
   Relais = 1
   Else
   Relais = 0
   End If



MfG!

Weiss einer, wie ich nun den Ausgang nicht die ganze Minute schalten 
kann, sondern nur 5s ?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.