Hallo, ich möchte einen Wert aus einer Variablen kopieren und in eine andere Variable schreiben. Und alles in Basic mit dem Atmel 90s2313. Also: Dim Minuten As Byte. "Minuten" wird jede Minute aktualisiert(jede Minute+1)! Und nun möchte ich per knopfdruck (If Pind.5 =0) die Zahl aus "Minuten" kopieren und in der Variablen z.B. "Schalter_gedrueckt" festhalten so dass ich das noch Stunden später ablesen kann(wird vom LCD ausgegeben). Hat da jemand eine Idee? Danke schon mal, Tobias
;-) Du hast mich nicht richtig verstanden. "Minute" erhöht sich jede Minute. Das ist ne Tatsache. Wenn "Minute" den Wert 54 hat und der Taster gedrückt wird, dann soll "Schalter_gedrueckt" auch den Wert 54 bekommen! 1 Minute später hat "Minute" den Wert 55!!! und "Schalter_gedrueckt" hat IMMERNOCH den Wert 54! Noch eine Minute später hat "Minute" den Wert 56 und "Schalter_gedrueckt" hat IMMERNOCH den Wert 54. Erst wenn der Taster gedrückt wird aktualisiert sich der Wert für "Schalter_gedrueckt" und soll solange beibehalten werden bis der Taster gedrückt wird und sich der Wert erneut aktualisiert. Tobias Tobias
@tobias blome: er hat dich richtig verstanden aber du seine antowrt nicht :)
Hallo, ich hab´s mal probiert und das geht nicht:-( Error:242 Source variable does not match the target variable Hat da jemand einen Vorschlag, was ich falsch gemacht haben könnte? (Programm hat und fuktioniert immer noch bis auf Schalter_gedrueckt) Das hab ich schon geschrieben: Dim Schalter_gedrueckt As Byte Schalter_gedrueckt = 0 und das ist meine Do - Loop Schleife:(Prog im Anhang) '----------------------------------------------------------------------- -------- 'Do - Looproutiene: '----------------------------------------------------------------------- -------- Do '----------------------------------------------------------------------- -------- 'Uhrzeit festhalten!!! '----------------------------------------------------------------------- -------- If Pind.5 = 0 Then Schalter_gedrueckt = Minute End If '----------------------------------------------------------------------- -------- 'UHR einstellen: Zum einstellen RESET(PD4)festhalten!!! '----------------------------------------------------------------------- -------- 'Minuten + If Pind.5 = 0 And Pind.4 = 0 Then Minuten = Minuten + 1 End If 'Minuten - 'If Pind.5 = 0 And Pind.4 = 0 Then 'Minuten = Minuten - 1 'End If '----------------------------------------------------------------------- -------- 'ALARM LED: 'If Pind.5 = 0 Or Pind.4 = 0 Then 'Portd.5 = 1 'Pin auf High setzen(als Ausgang deklarieren!!!) 'End If '----------------------------------------------------------------------- -------- 'Resettaster If Pind.4 = 0 Then Tuer_1_zaehler = 0 End If '----------------------------------------------------------------------- -------- 'Ueberwachung Tuer_1 Tuer_1 = Pind.5 ' Pin für Tür festlegen 'Tuerzähler 1 If Tuer_1 = 1 And Tuer_1_status = 0 Then ' Tür wurde aufgemacht Incr Tuer_1_zaehler ' Zähler um 1 erhöhen, Tuer_1_status = 1 ' Status OFFEN eintragen End If If Tuer_1 = 0 Then Tuer_1_status = 0 ' Tür zu, status zuweisen Waitms 50 '--------------------------------------------------------------------- ---------- 'Ueberwachung Tuer_2 Gosub Anzeige ' Änderung anzeigen Loop
Hi, '----------------------------------------------------------------------- -------- 'Uhrzeit festhalten!!! '----------------------------------------------------------------------- -------- If Pind.5 = 0 Then Schalter_gedrueckt = Minute End If Deine Variabel heisst nicht Minute sondern "Minuten" ... If Pind.5 = 0 Then Schalter_gedrueckt = Minuten End If Ein kleiner Rat: Du solltest deine Tasten noch entprellen ... zum Teil koenntest du den debounce befehl nehmen ..... Mfg Dirk
Ooooooooooooooooooooooooooooh NEIN - da hab ich wohl echt PECH gehabt!!! ;-) Funzt SUPER GUT - man muss es nur richtig schreiben! also vielen Dank - Ich hätte nie gedacht das das mit dem merken sooo einfach ist. Zum entprellen, ich hab ja manchmal "waitms 50" benuzt. Was ist denn der debounce befehl? Tobias (aktuelles Prog im Anhang)
Hi, weiss jemand wie ich die Uhrzeit 2stellig auf dem LCD ausgebe? 7:5:9 Uhr (07:05:09 Uhr)sieht etwas komisch aus ;-) und genauso der Zähler - wenn die nächste Stelle gebraucht wird (von 9 auf 10) dann verschiebt sich alles um eine Stelle :-( Kann man irgendwie von 09 auf 10 usw.??? Tobias '---schnipp--- 'Zaehler Dim Tuer_1 As Bit Dim Tuer_1_status As Bit Dim Tuer_1_zaehler As Byte 'Tuer(1) Tuer_1 = 0 Tuer_1_status = 0 Tuer_1_zaehler = 0 '----------------------------------------------------------------------- -------- 'Do - Looproutiene: '----------------------------------------------------------------------- -------- Do 'Pinbeschaltung Tuer_1 = Pind.5 Resetpin = Pind.4 '----------------------------------------------------------------------- -------- 'Uhrzeit festhalten!!! '----------------------------------------------------------------------- -------- If Tuer_1 = 0 And Tuer_1_status = 1 Then Speicher1_h = Stunden Speicher1_m = Minuten 'ResetTaster setzt zurueck Unterpunkt "Reset" Speicher1_s = Sekunden End If '----------------------------------------------------------------------- -------- 'UHR einstellen: Zum einstellen RESET festhalten!!! '----------------------------------------------------------------------- -------- 'Minuten + If Tuer_1 = 0 And Resetpin = 0 Then Minuten = Minuten + 1 End If 'Minuten - 'If Tuer_1 = 0 And Resetpin = 0 Then 'Minuten = Minuten - 1 'End If '----------------------------------------------------------------------- -------- 'ALARM LED: 'If Tuer_1 = 0 Or Resetpin = 0 Then 'Portd.0 = 1 'Pin auf High setzen(als Ausgang deklarieren!!!) 'Ruecksetzen unter Punkt RESETTASTER 'End If '----------------------------------------------------------------------- -------- 'Resettaster If Resetpin = 0 Then Tuer_1_zaehler = 0 Portd.0 = 0 Speicher1_h = 0 Speicher1_m = 0 Speicher1_s = 0 End If '----------------------------------------------------------------------- -------- 'Ueberwachung Tuer_1 'Tuer_1 = Tuer_1 ' Pin für Tür festlegen 'Tuerzähler 1 If Tuer_1 = 1 And Tuer_1_status = 0 Then ' Tür wurde aufgemacht Incr Tuer_1_zaehler ' Zähler um 1 erhöhen, Tuer_1_status = 1 ' Status OFFEN eintragen End If If Tuer_1 = 0 Then Tuer_1_status = 0 ' Tür zu, status zuweisen Waitms 50 '----------------------------------------------------------------------- -------- 'Ueberwachung Tuer_2 '--------- Gosub Anzeige ' Änderung anzeigen Loop '---schnapp---
Hi, Bascom besitzt sogar eine Hilfe da kannst du schaun was der Debouncebefehl macht. Damit du eine zweistellige Ausgabe machst musst du die Zahlen in BCD umwandeln .... Jetzt komm nicht auf die Idee zufragen wie das geht. Schau dir dazu mal die Samples in der Hilfe an .... (makebcd) Bei konkreten Problemen wird dir schon geholfen. Mfg Dirk
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.