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


von Christian (Gast)


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
1
;*** Motorolla 68HC12
2
;*** Datei: hc12c.asm
3
;*** Nahme: Christian Frericks
4
;*** Zweck: Nightrider in beide Richtungen
5
6
  ORG $800
7
8
  MOVB #0,$16    ;Watchdog auschalten
9
  MOVB #$FF, 3    ;Port 3 als AUSGANG definieren
10
  MOVB #$01, 1    ;LED 1 einschalten, Position des Anfangs
11
12
start   NOP
13
  BSR left
14
  BSR right
15
  JMP start
16
17
  
18
;Left
19
left  LDAA #$07  
20
loop1  ROL $1
21
  DECA
22
  BSR loop
23
  BNE loop1
24
  RTS
25
    
26
;Right
27
right  LDAB #$07  
28
loop2  ROR $1
29
  DECB
30
  BSR loop
31
  BNE loop2
32
  RTS
33
34
;Zeitverzögerung
35
  
36
loop  LDX #$FFFF
37
zeitv  DBNE X, zeitv
38
  RTS 
39
  
40
  END
Dankeschön

Christian

von APW (Gast)


Lesenswert?

SP initialisiert ?

von Christian (Gast)


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?

von Christian (Gast)


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

von APW (Gast)


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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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

von Joerg W. (joergwolfram)


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

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.