PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Asm. Programmierung eines Impulstasters



Stanlee
02.06.2006, 20:10
Hallo!
Ich hab folgendes Problem mit meiner Sensorik!

Mein Getriebemotor hat ein Zahnrad an der Spindel, welcher pro viertel
Umdrehung einen Taster betätigt. Da ich leider kein Schrittmotor habe
versuche ich die Position meines Motors anhand dieser Impulse zu
erkennen.


Dieses Programm soll normallerweise dafür sorgen das sich
der Motor um einen Schritt nach rechts dreht, was er aber nicht tut...



motor1_srechts:
lcall motor1_starte_rechts_drehung

motor1_sr1: jnb P0.3, motor1_sr3; wenn impulstaster 0 ist

; wenn der impulstaster weiterhin 1 ist dann endlos schleife
motor1_sr2: jb P0.3, motor1_sr2
jmp motor1_srechts_ende

; wenn der impulstaster weiterhin 0 ist dann endlos schleife
motor1_sr3: jnb P0.3, motor1_sr3

motor1_srechts_ende:
lcall motor1_anhalten


Danke im Voraus!

ghost0
06.06.2006, 06:19
Hallo,

ist der Taster entsprechend entprellt ? Teilweise koennen diese
bis zu mehrere mSek pellen (Kondensator frei nach tau(in sek)=R*C
reinschalten).
Im Programm ist auch ein kleiner 'Dreher' (1 = Ende erreicht):
lcall motor1_starte_rechts_drehung
jnb P0.3, $ ; warte, bis die Dreung den Taster verlassen hat
jb P0.3, $ ; warte, bis die Drehung den Taster erreicht hat
lcall motor1_anhalten

Heinz