Forum: Mikrocontroller und Digitale Elektronik Problem bei Rückwärszähler (Ride7)


von Jonas (Gast)


Lesenswert?

Hallo liebe Com,

bin seit einigen Wochen daran einen Rückwärszähler zu programmieren, 
doch leider bleibt er nicht bei 0 stehen wie er dies soll. Hier vorab 
mal die gestellte Aufgabe.

,,Nach Programmstart: Anzeige von S (Start) in der 7-Segmentanzeige
Nach Tastendruck wird im Sekundentakt von 10 (Anzeige Start) bis 0 
gezählt,
dann bleibt die Anzeige bei 0 stehen.
Erneuter Start bei 10 nach Tastendruck.,,

Und nun wie weit ich gekommen bin ich finde leider meinen Fehler nicht. 
Auch der Debugger verrät mich nicht wo ich falsch liege.
1
     
2
code at 0      ; Programm beginnt bei Adresse 0000h
3
    include 5131.inc    ; Datei mit Adressen einbinden
4
5
start:    mov   dptr,#tabelle
6
          mov   p2,#11100110b
7
          jnb   p3.3, start
8
loop:     mov   a,#0
9
          movc  a,@a+dptr
10
          mov   p2,a
11
          inc   dptr
12
          lcall  time
13
          jnz   loop
14
          mov   p2,#01111110b
15
          ljmp  endless
16
          
17
endless: jnb     p3.3,endless
18
         ljmp    start
19
          
20
time:   mov r3,#255;
21
        mov r2,#255;
22
Zeit2:  mov r1,#255;
23
Zeit1:  djnz    r1, Zeit1
24
        djnz    r2, Zeit2    
25
Zeit3:  djnz    r3, Zeit3
26
        ljmp    loop  ;return Stat longjump
27
        
28
29
30
31
tabelle:    db 11110110b ; Zahl9
32
            db 11111110b ; Zahl8
33
            db 00110010b ; Zahl7
34
            db 11101110b ; Zahl6
35
            db 11100110b ; Zahl5
36
            db 11010010b ; Zahl4
37
            db 10110110b ; Zahl3
38
            db 10111100b ; Zahl2
39
            db 00010010b ; Zahl1
40
            db 01111110b ; Zahl0
41
            db 0 ; Kennung Tabellenende
42
end

Bitte um schnellst mögliche Rückantwort. Schon einmal vielen Dank im 
Vorraus.

Gruß Jonas

von Peter D. (peda)


Lesenswert?

Jonas schrieb:
> ljmp    loop  ;return Stat longjump

Der Kommentar ist nicht von Dir, stimmts?
Lies ihn Dir mal durch.


Peter

von Jonas (Gast)


Lesenswert?

Doch, habe mir einfach mal Randnotitzen gemacht um überhaupt etwas durch 
zu blicken, ist mittlerweile aber schon abgeändert, trotzdem danke, es 
geht mir momentan nur um das Programm, ich verstehe nicht weshalb es 
nicht das tut, was es soll.

Gruß Jonas

von Stack (Gast)


Lesenswert?

Dann berücksichtige doch das, was du als Kommentar geschrieben hast.
Wenn du einen call verwendest musst du mit ret zurückkehren sonst 
zerhaut es dir deinen Stack.

von Jonas (Gast)


Lesenswert?

Vielen Dank dass wäre ja dann schonmal Fehler Nummer 1

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.