mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Drehrichtung?


Autor: Nico (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.