PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : kann mir jemand helfen???



xbgamer
19.10.2006, 20:28
also hoffentlich bin ich jetzt hier im richtigen bereich ich schreib jetzt einfach mal los:


also gut bin fleißig drann am programmieren für den L293d
allerdings will dass programm mal wieder net wie ich will. soll jetzt so aussehen:
ein sensor stößt an.
soll er eine sekunde lang stehn. sprich portb.0 und portb.1 sollen beide 1 haben.
1 Sekunde warten.
Portb.0 = 0 also aus und Portb.1 =1 also ein.
3 Sekunden warten
Portb.0 = 1 und Portb.1 auch damit er ja steht.
1 sekunde warten.
und dann wieder portb.0 =1 und portb.1 =0

und dass soll er jedesmal machen wenn er irgendwo anstößt.

wie realisiere ich dass?
Hab jetzt hier mal was angefangen aber is echt schlecht könnt ihr ja sagen:
$regfile = "m8def.dat"
$crystal = 1000000
$baud = 9600

Config Portb.0 = Output
Config Pinc.0 = Input
Config Portb.1 = Output
Config Pinc.1 = Input
Config Pinc.2 = Input

Portc.0 = 1
Portc.1 = 1
Portc.2 = 1
Do
If Pinc.0 = 1 Then
Portb.0 = 1
Else
Portb.0 = 0
Wait 1
End If
Loop
End


bislang schalter halt nur die led für ne sekunde ab und weiter weiß ich net. wenn ich jetzt da nach wait:
portb.0 =0
portb.1 =1

eingebe bleiben hinterher beide an.

vll weiß ja jemand was von euch.

xbgamer
20.10.2006, 16:19
keiner ne lösung?

xbgamer
20.10.2006, 16:45
so hab jetzt mal was aber wie bekomme ich es hin dass das programm nur bei tastendruck durchläuft und nicht immer so läufts immer durch.
Config Portb.0 = Output
Config Pinc.0 = Input
Config Portb.1 = Output
Config Pinc.1 = Input
Config Pinc.2 = Input

Portc.0 = 1
Portc.1 = 1
Portc.2 = 1
Do
If Pinc.0 = 1 Then
Portb.0 = 1
Portb.0 = 1
Wait 1
Portb.0 = 0
Portb.1 = 1
Wait 3
Portb.0 = 1
Portb.1 = 1
Wait 1
Portb.0 = 1
Portb.1 = 0
Else
Portb.0 = 0
Portb.1 = 0
Wait 1
Portb.0 = 1
Portb.1 = 0
Wait 3
Portb.0 = 0
Portb.1 = 0
Wait 1
Portb.0 = 0
Portb.1 = 1
End If
Loop
End

außerdem soll es dann wieder am ende bei der letzten angabe bleiben sprich portb.0 =1 und portb.1 =0

xbgamer
21.10.2006, 10:03
so habs:
$regfile = "m8def.dat"
$crystal = 1000000
$baud = 9600

Config Portb.0 = Output
Config Pinc.0 = Input
Config Portb.1 = Output
Config Pinc.1 = Input

Portc.0 = 1
Portc.1 = 1
Do
If Pinc.0 = 1 Then
Portb.0 = 1
Portb.1 = 0
Portb.1 = 0

Else
Portb.0 = 0
Wait 2
Portb.1 = 1
Wait 5
Portb.1 = 0
Wait 2
End If
If Pinc.1 = 1 Then
Portb.2 = 1
Portb.3 = 0
Portb.3 = 0

Else
Portb.2 = 0
Wait 2
Portb.3 = 1
Wait 5
Portb.3 = 0
Wait 2
End If
Loop
End


so jetzt möchte ich dass dieses programm per tasterdruck 5 minuten durchläuft wie mache ich denn dass?

Jon
21.10.2006, 15:01
so jetzt möchte ich dass dieses programm per tasterdruck 5 minuten durchläuft wie mache ich denn dass?
das habe ich mal bei mir überlegt in den bot einzubauen (als programm).
hab ich dann nichtmehr weiter verfolgt und weiß es deswegen auch nicht.

jon

Charly_cs
21.10.2006, 15:55
Hi!

Du musst das mit einem Timer machen, indem du bei jedem TimerÜberlauf hochzählst und schaust, wie oft er übergelaufen ist. Ist er so oft übergelaufen, dass 5 min vorbei sind, setzt du deine Ports entsprechend, dass er stehen bleibt und wartet bis wieder dein Tastendruck kommt.
Such einfach im Forum nach Timern. Da gibts einiges zu.

Gruß :)

xbgamer
21.10.2006, 18:16
danke schon mal. ich möchte noch einen bodenabtastung drann machen. auf dem prinzip von der oberen schaltung.
wenn ich nun aber nun
pinc.2 und pinc.3 als eingang konfiguriere
und dann anstatt der stellen
if pinc.0 =1
zb if pinc.2 =0

schreibe klappt es net.

ich möchte es ja so haben dass wenn der sensor der auf den boden gerichtet ist 0 wird dass das programm abgespielt wird und net wenn er 1 wird

xbgamer
22.10.2006, 15:07
weiß jemand was?