Tip:
Timer und Interrupt rising faling
Hi ich habe da mal ein Problem
ich fange gerade mit der programmierung von atmels in Basic an und möchte nun gern eine Steureung programmieren die dafür sorgt das ein Fahrzeug einer linie folgt soweit so gut. aber das Fahrzeug soll wenn es an bestimmte punkte kommt für eine gewisse zeit stehen bleiben. dafür wird von einem Sensor ein Eingang auf 1 geschaltet bleibt aber auch so geschaltet nun soll eine Zeit ablaufen und das Fahrzeug weiter fahren. bis jetzt hab ich es nur geschaft das die Zeit abläuft wenn der Eingang wieder auf null liegt.
Ich hoffe ihr könnt mir Helfen
smookie
Tip:
Timer und Interrupt rising faling
Vor den Erfolg haben die Götter den Schweiß gesetzt
die beiden Begriffe sagen mir zur zeit nicht viel da ich wie gesagt ein absoluter anfänger bin
na du mußt doch bloß deine schon vorhandene eingangsabfrage negieren
für IF pina.1 = 0 machste IF pina.1 =1
Und wenn du mit dem internen Timer (nicht wait Befehle) und interrupt arbeitest dann siehe vitis
ansonsten poste mal den codeteil
Das ist mal das Gesamte Programm.Code:Config Portd.5 = Output Led1 Alias Portd.5 Config Pind.2 = Input Taster1 Alias Pind.2 Config Portd.6 = Output Led2 Alias Portd.6 Config Pind.3 = Input Taster2 Alias Pind.3 Config Pind.4 = Input Taster3 Alias Pind.4 Portd.5 = 0 Portd.6 = 0 Do If Taster3 = 0 Then If Taster1 = 1 Then Gosub Pulse1 Else Led1 = 0 End If If Taster2 = 1 Then Gosub Pulse2 Else Led2 = 0 End If Else Reset Led1 Reset Led2 Wait 2 End If Waitms 100 Loop Pulse1: Led1 = 1 Waitms 20 Led1 = 0 Waitms 20 Return Pulse2: Led2 = 1 Waitms 20 Led2 = 0 Waitms 20 Return
Wenn ich Taster3 drücke werden in dem Moment wo ich ihn los lasse alle amdere Eingangs Signale für 2 Sekunden blokiert. Aber ich habe an dem Taster3 in dem Moment wo er blockieren soll ein dauer Signal das ist mein problem
Hoffe ich stell mich nich total blöd an
€: wenn ich den taster3 gedrückt halt passiert gar nichts.
ist der taster 3 gegen masse geschaltet oder gegen 5V ?
davon mal abgesehn erklär mal wie das programm arbeiten soll
und reset led1 ist das gleiche wie led1=0
der taster 3 sowie die anderen ist gegen 5V geschaltet
wenn du eine abfrage einmal abgearbeitet haben willst setzt dir einen merker
zb
do
...
if taster = 1 then gosub warteschleife (wenn taster gedrückt)
if taster =0 then a=0 (wenn taster losgelassen dann merker wird zurückgesetzt)
loop
warteschleife:
if a=0 then wait 2
a=1 ( merker wird gesetzt )
return
könnte ich dann in den unterpunkt warteschleife auch gleich ein abschalten der beiden ausgänge mit einbauen?
mir ist gerade noch eine andere idee gekommen gibt es eine möglichkeit extern also mit bauelementen aus dem dauersignal einen kurzen impuls zu machen.
schonmal vielen dank
extern ist aufwendig und blödsinn:
oder mach halt so
do
code
..
if taster3=1 then (wenn taster gedrückt
if a=0 then gosub xyz ( und vorher auf 0 war springe xyz )
endif
a=0
code ...
loop
xyz:
hier kannst du alles reinschreiben was passieren soll wenn der taster gedrückt wurde
a=1
return
Lesezeichen