Forum: Mikrocontroller und Digitale Elektronik Drehrichtung?


von Nico (Gast)


Lesenswert?

Hallo

Ich bin dabei mit einem MC eínen DMX-Strobo zu bauen, welches über
einen Farbwechsler verfügt. Das funzt auch alles ganz Suuuper, nur hat
es noch einen kleinen Schönheitsfehler. An einem Schrittmotor (200
Schritte) ist eine Farbwalze mit 7 Farben und weiß angebracht. Es sind
also, um von einer auf die nächste Farbe zu gelangen 25 Schritte
notwendig. Leider macht mein Motor dies nur in eine Richtung. Also muß
ich manchmal 175 Schritte machen um die richtige Farbe anzufahren
obwohl 25 der kürzeste Weg ist. Darum nun meine Idee:

R_ichtung:
         cp      motorsoll,motorist     ;wenn sollwert größer als
         brsh    G_rößer                ;istwert gehe zu 'G_rößer
         mov     temp,motorist          ;motorist soll nicht ge-
         sub     temp,motorsoll         ;ändert werden
         cpi     temp,100               ;kürzesten Weg bestimmen
         brlo    L_inks                 ;ist kleiner 100 dann links
         rjmp    R_echts                ;sonst rechts drehen
G_rößer:
         mov     temp,motorsoll         ;motorsoll soll nicht ge-
         sub     temp,motorist          ;ändert werden
         cpi     temp,100               ;kürzesten Weg bestimmen
         brlo    R_echts                ;ist kleiner 100 dann rechts
L_inks:                                 ;sonst links drehen
         cbi     PortD,RL               ;Richtungsbit löschen
         rjmp    main
R_echts:
         sbi     PortD,RL               ;Richtungsbit setzen
         rjmp    main

Die 'main-schleife' überprüft ob der DMX-wert ungleich der
Motorsoll-positon und kleiner 200 ist. Ist das der Fall wird der
DMX-wert in die Variable Motorsoll geschrieben und zur Adresse
'R_ichtung' gesprungen. Mich würde nun interessieren ob man das auch
einfacher lösen kann oder ob meine Lösung nicht schlecht ist?!? Im
AvrStudio hat es auf jedenfall gefunzt.


Danke schonmal im vorraus

Nico

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
Noch kein Account? Hier anmelden.