mikrocontroller.net

Forum: FPGA, VHDL & Co. Hilfe bei Night Rider mit 8 LEDs am 68HC12 in Assembler


Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab hier ein kleines Problem, bei dem ich nicht weiter komme. Ich möchte 
für den Motorolla 68HC12 einen Night Rider mit 8 LED's am Ausgang B(3) 
programmieren. Irgendwie klappt das nicht. Kann mir jemand weiter 
helfen.

Programm läuft im RAM bei $800
;*** Motorolla 68HC12
;*** Datei: hc12c.asm
;*** Nahme: Christian Frericks
;*** Zweck: Nightrider in beide Richtungen

  ORG $800

  MOVB #0,$16    ;Watchdog auschalten
  MOVB #$FF, 3    ;Port 3 als AUSGANG definieren
  MOVB #$01, 1    ;LED 1 einschalten, Position des Anfangs

start   NOP
  BSR left
  BSR right
  JMP start

  
;Left
left  LDAA #$07  
loop1  ROL $1
  DECA
  BSR loop
  BNE loop1
  RTS
    
;Right
right  LDAB #$07  
loop2  ROR $1
  DECB
  BSR loop
  BNE loop2
  RTS

;Zeitverzögerung
  
loop  LDX #$FFFF
zeitv  DBNE X, zeitv
  RTS 
  
  END
Dankeschön

Christian

Autor: APW (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
SP initialisiert ?

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
SP heißt wohl Stackpointer... gehört habe ich das schonmal.. aber in der 
Vorlesung Embedded Systems 1 hatten wir das noch nicht. Wie geht das?

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bitte korrigieren wenn was nicht stimmt

left  LDAA #$07
loop1  ROL $1
  DECA
  BSR loop
  BNE loop1
  RTS

ich lade eine 7 in den Accumulator A... dann ziehe ich in jedem 
Durchgang mit DECA eins ab. Bei Null ist die Verzweigunug zu ende

Christian

Autor: APW (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
eine Moglichkeit:

left  LDAA #$07
loop1  ROL $1
  BSR loop
  DECA
  BNE loop1
  RTS

In deiner Subroutine werden die Flags verändert, die mit DECA gesetzt 
werden.
Deshalb DECA und dann gleich BNE (oder alternativ TSTA direkt vor BNE)

Ausserdem am Start z.B.

LDS  #$900

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ... aber in der Vorlesung Embedded Systems 1 hatten wir das noch nicht.
> Wie geht das?
Dann musst du das machen, was Ingenieure tagtäglich tun:
Datenblätter lesen.
Dafür sind die geschrieben, da steht sowas drin.

Etwas OT, aber trotzdem:
Einer meiner Profs sagte immer "Und Sie wollen zur intellektuellen Elite 
des Landes gehören?"
Diese Frage darf dir auch gestellt werden. Nicht nur, dass du im 
falschen Forum postest (oder was stellst du dir unter FPGAs, VHDL und Co 
vor?). Nein, deine Beschreibung ist unzureichend. Was du nämlich für 
dich behältst, ist, WAS nicht funktioniert.

Und dann noch der Fehlgriff in der Filmhistorie ;-)
http://de.wikipedia.org/wiki/Knight_Rider

Autor: Joerg Wolfram (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch ein Tipp: da die HC12 Controller modular aufgebaut sind, IMMER mit 
symbolischen Adressen arbeiten und das entsprechende .inc File mit 
einbinden.
Ansonsten geht es zu 90% schief, wenn man einen anderen Controller als 
den ursprünglich vorgesehenen benutzt.
Naja, eigentlich gilt das für fast alle Mikrocontroller...

Gruß Jörg

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]
  • [vhdl]VHDL-Code[/vhdl]
  • [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.