Die Stunde kann nicht gleichzeitig >20 und <8 sein. Da muß auch ein or rein.
habs gefunden Reference = AVCC hat gefehlt bzw war in dem beispiel welches ich durchgelesen habe nicht drinn.
nun habe ich jedoch ein weiteres problem das einschalten des lichts klappt nun wunderbar nur wenn ich das licht einschalte bleibt die uhr stehen und läuft nachdem das licht aus ist erst weiter.
ebenso funktioniert mein vorhaben nicht dass das licht zwischen 20 und 8 uhr ausgeschaltet bleiben soll.
hier mein ansatz:
Code:Messung = Getadc (0) If Messung > 300 OR _hour > 20 and _hour < 8 then Portb.5 = 0 wait 5 else Portb.5 = 1 End If
Die Stunde kann nicht gleichzeitig >20 und <8 sein. Da muß auch ein or rein.
Wenn das Herz involviert ist, steht die Logik außen vor! \/
danke so funktioniert es nur will ich auch wenn ich den sensor betätige dass das licht 5 sekunden an bleibt wenn ich allerdings:
Messung = Getadc (0)
If Messung > 300 OR _hour > 20 or _hour < 8 then
Portb.5 = 1
wait 5
else
Portb.5 = 0
End If
schreibe frisst es irgendwie die gesamte rechenleistung. da geht dann gar nix mehr. kann nix mehr bedienen. weiß da jemand rat?
Eventuell hast du damit unbewusst sowas wie eine Endlosschleife programmiert wo der Controller nicht raus kommt.
naja sie läuft schon los aber extrem langsam. so sprunghaft.
mmh was ich eigentlich schon gestern Fragen wollte aber wo ich nicht zu gekommen bin......
Wofür hast du das Sub in Zeilen dieser Art?
Debounce Pind.0 , 0 , Stellenmenue , Sub
ach danke hab ich wohl vergessen rauszunehmen. dieser code war früher mal in einem anderen projekt von mir drinn den hab ich dann einfach editiert und hab dass dann wohl vergessen rauszunehmen.
Ne, lass die mal besser drin.Zitat von xbgamer
Stellenmenue ist eine Sub, die mit einem Return abgeschlossen ist. Nach Ende der Sub macht das Programm mit dem nächsten Befehl hinter dem Debounce weiter. Damit diese Adresse im Stack liegt, muss das SUB dahinten dran. Ansonsten springt das Programm irgendwo anders hin.
mmmh ist das nicht so das die Sachen wie "Stellenmenue" nur Pointer zu diesem Punkt sind? Weil damit der "Sub" Befehlt richtig funktioniert, muss hinter dem Sub doch noch ein Name für das Unterprogramm.
Oder werf ich da was durcheinander?
so hab das ganze nun gelöst mit dem licht. hier mein weg:
Messung = Getadc (0)
If _hour > 20 or _hour < 8 then
Portb.5 = 1
If Messung > 300 then
portb.5 = 1
wait 5
end if
else
Portb.5 = 0
End If
weiß zufällig jemand wie ich das mit dem datum einfach realisieren kann?
Lesezeichen