PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Abfrage mit Zeitabfrage



wodka
03.07.2007, 18:43
Hoffe mir kann schnell einer behilflich sein! Bin gerade mit Bascom angefangen und möchte 1 kleine Bedingung mit Zeit! Weiß nur nicht wie ich das mit in der IF Abfrage mit einbinden soll!

1. Wenn auf Porta.0 ein 1-Signal (Taster, impuls) und auf Porta.1 nach 2 sec keine Flanke von 0 auf 1 kam, dann setze Portd.0 auf 1

Denke das ist für euch 1 min Sache...

Schöne Grüße und vielen Dank

peterfido
03.07.2007, 22:33
Ich nutze für sowas immer die sectic Routine. Diese wird einmal pro Sekunde angesprungen, wenn du die Bascom Uhr nutzt. Also merken, zu welcher Sekunde der Eingang gesetzt wurde und wenn 2 Durchläufe später keine Änderung war dann demensprechend agieren. Um die Sectic nicht so aufzublähen wird bei mir immer nur eine Variable auf 1 gesetzt, welche ich in der Hauptschleife auswerte und dabei auf 0 setze.

wodka
04.07.2007, 14:50
Danke für die Antwort, aber geht das nicht irgendwie viel einfach mit der "wait" funktion oder so! Welche machen das doch bestimmt im Handumdrehen! Ich kenne mich leider mit Basic nicht so gut aus, kann nur SPS Programmierung und weiß das somit von der denkstruktur was ich möchte!!

Würde mich über antworten freuen!

peterfido
04.07.2007, 17:23
Bei Wait wartet der uC. Du erkennst nicht, ob die Taste zwischenzeitig losgelassen und neu gedrückt wurde. Darüber Hinaus bin ich kein Freund der Wait Funktionen. Du blockierst damit das gesamte Programm. (Bis auf die Interrupts)

wodka
04.07.2007, 17:30
Ok, das habe ich auch schon gemerkt mit dem los lassen.. Hast du denn ein Beispiel für sectic Routine ??

peterfido
04.07.2007, 21:24
Prinzipiell so



do
if takt=1 then
takt=0
if taste1=1 then Zeittaste1=zeittaste1+1
else
zeittaste1=0
endif
if zeittaste1=2 then
print "2 sekunden"
endif
endif

loop
sectic:
Takt=1
return