-
-
versuch mal das Jahr nur zweistellig - also anstelle 2010 nur 10.
J und I sind nur Variablen die Temporär belegt sind - also deren Ergebnis am Ende keine Rolle spielt.
Was du mit deinem Code im letzten Post vorhast verstehe ich leider nicht.
klar, alle 24 Stunden muss man den Tag einmal inkrementieren. damit würdest du eine fortlaufende Zahl erreichen, die jeden Tag um 1 anwächst.
Diese ließe sich auch wieder bei 8 umbrechen (if Tag>=8 then Tag=1) und du könntest mit Lookup oder Case nach dem dazugehörigen Wochentag schauen.
Dann musst du aber jedes mal die Uhr vor- und zurückstellen um rauszukriegen was morgen für ein Wochentag ist, oder Heiligabend.
Gruß BoGe-Ro
-
Erfahrener Benutzer
Roboter-Spezialist
hi
also mit lookup und case kenne ich mich nicht aus sorry.
Kanst mir vieleicht ein beispiel aufzeien?
Also sin der ganzen sache ist es das ich 1. im display die akutelle zeit steht unbd 2tens zum bestimten zeiten an bestimmten tagen aktionen ausgeführt werden z.b. Led's dimmen und co.
gruß Dominik
-
Erfahrener Benutzer
Begeisterter Techniker
also das geht alles, wie gesagt, am einfachsten ist es warscheinlich mit einer switch case anweisung oder gleich mehreren verschachtelten. Musst du einfach mal die Bascomhilfe aufschlagen und nach SWITCH-CASE suchen. Dort ist das erklärt, oder bei Wiki Switch anweisung eingeben.
-
Erfahrener Benutzer
Roboter-Spezialist
also bei der Wiki finde ich nichts unter switch anweisung.
bei Bascom unter hilfe kommt wenn ich nach switch Suche kein treffer
Irgendwie stehe ich auf dem schlauch
-
Erfahrener Benutzer
Begeisterter Techniker
ok also das Ding heißt unter Bascom:
SELECT-CASE-END SELECT
Sorry hier heißt das etwas anders als in C, naja und i wie habe ich mir angewöhnt dazu switch anweisung zu sagen.
Eine Switch anweisung ist im prinzip eine mehrfache if anweisung: Select Case [Variable]
Wo Variable steht schreibste das rein, was er überprüfen soll,
hinter CASE schreibste rein, was die Variable für ein Wert haben soll, z.B. 3, also wenn die in der Variable eine 3 steht, führt er alles aus, was im Case steht.
-
Erfahrener Benutzer
Roboter-Spezialist
Danke dir,
also z.b. select case 8 [Tag]
tag = tag - 7
dann würde gefrüft ob die variable tag den wert 8 hatt, und fals ja würde der wert auf zurückgesetzt. soweit sogut. Ist ja fast das slebe wie mit if then...
aber wie verknüpfe ich das mit den wochentagen wie montag oder mittwoch?
lookup und case wurde oben geschireben, aber da habe ich keine ahnung von
-
Erfahrener Benutzer
Begeisterter Techniker
ohh man mach doch einfach n kleinen zähler der da sagt:
If stunde = 24 then
stunde= 0
tag = tag +1
end if
select case tag
case 1 : Print "Montag"
case 2 : Print "Dienstag"
.
.
.
dann noch ne kleine if anweisung:
if tag >7 then
tag = 0
woche = woche +1
end if
dann haste sogar n Kalenderwochenzähler noch mit drin
kannst natürlich auch weglassen und so einfach tag auf 0 setzen.
Kannst das auch so machen, das du mit Case Else arbeitest , da würdest du dir die eine if anweisung sparen und einfach sagen:
case select : tag = 0
gruß Hunni
-
Erfahrener Benutzer
Roboter-Spezialist
hey danke Hunni, hat mir SEHR geholfen.
Aber ein kleines problem habe ich noch.
ich habe in meinem timer die anweisung:
Print Stunde ; ":" ; Minute ; ":" ; Sekunde
also werden jede sekunden die akutellen daten ausgegeben.
Ist es möglich das ich da auch den Wochtenag reinbekomme?
Weil die select case tag anweisung stände dann ja extra, und es whre besser wens alles hinernander in einer reihe geschhrieben würde.
gruß Dominik
-
Erfahrener Benutzer
Begeisterter Techniker
nah kla, die einfachste möglickeit wäre einfach noch eine word variable zu erzeugen und anstatt dem case 1: Print "BLA" einfach nur:
DIM Wochentag as Word
.
.
.den ganzen anderen kram
.
case 1 : Wochentag = "Montag"
und das bindest du einfach dann in deine Printanweisung ein:
Print Stunde ; ":" ; Minute ; ":" ; Sekunde;":";Wochentag
-
Erfahrener Benutzer
Roboter-Spezialist
Danke
habe jetzt die printanweisung :
Print Stunde ; ":" ; Minute ; ":" ; Sekunde ; ":" ; Wochentag
und oben in meiner do loop schleife:
Taste = Tastenabfrage()
If Taste <> 0 Then
Select Case Taste
Case 1
Call Plussekunde
Case 2
Call Plusminute
Case 3
Call Plusstunde
Case 4
Call Clockstart
End Select
Sound Portd.7 , 400 , 500 'BEEP
End If
Waitms 100
If Sekunde = 60 Then
Sekunde = 0
Minute = Minute + 1
Else
End If
If Minute = 60 Then
Minute = 0
Stunde = Stunde + 1
Else
End If
If Stunde = 24 Then
Stunde = 0
Tag = Tag + 1
End If
select case tag
Case 1 : Wochentag = "Montag"
Case 2 : Wochentag = "Dienstag"
Case 3 : Wochentag = "Mittwoch"
Case 4 : Wochentag = "Donnerstag"
Case 5 : Wochentag = "Freitag"
Case 6 : Wochentag = "Samstag"
Case 7 : Wochentag = "Sonntag"
End Select
jetzt habe ich aber errors: 2x error 242 in den folgenden eilen:
Case 1 : Wochentag = "Montag"
Case 2 : Wochentag = "Dienstag"
und nochmal error 7 und 269 in der Case 2 : Wochentag = "Dienstag" eile.
K.a. wie ich die beseitiegen kann.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen