Berechnung

Gast #33104
Lesenswert?

Hi

Ich hänge gerade an einem Problem und komme absolut nicht weiter obwohl 
eigentlich alles "richtig" ist.

Mit diesem Programm wird versucht eine Geschwindigkeit (in m/s) zu 
berechnen und auf dem LCD Display auszugeben (µC 8252 (Atmel)) 
stattdessen gibt er immer nur 3 gleiche zahlenpaare aus.

....
.......
...........


;¸,o@´`'@o,¸¸,o@´`@o,¸¸,o@´`'@o,¸¸,o@´`'@o,¸¸,o@o,¸Initialisierung¸,o@´` 
'@o,¸¸,o@´`@o,¸¸,o@´`'@o,¸¸,o@´`'@o,¸¸,o@o,¸

init:  mov   a,#0      ;Register A = 0
    setb   IT0      ;ext. Interrupt0 bei abfallender Flanke
    setb   EX0      ;ext. Interrupt0 freigeben
    setb   EA        ;globale Interruptfreigabe

;¸,o@´`'@o,¸¸,o@´`@o,¸¸,o@´`'@o,¸¸,o@´`'@o,¸¸,o@o,¸Initialisierung ende 
¸,o@´`'@o,¸¸,o@´`@o,¸¸,o@´`'@o,¸¸,o@´`'@o,¸¸,o@o,¸



  chronen3:mov a,#00
        lcall cursorpos
        mov a,b
            lcall dezaus

        mov a,#40        ;Cursor auf die Postition
        lcall cursorpos    ;-Anfang zweiter Zeile-  (Km/h Berechnung ab 
jetzt)
        mov a,b
        lcall dezaus

        ljmp chronen3

;¸,o@´`'@o,¸¸,o@´`@o,¸¸,o@´`'@o,¸¸,o@´`'@o,¸¸,o@o,¸Interrupt-Service-Rou 
tine  (MESSPROGRAMM-chrony) ¸,o@´`'@o,¸¸,o@´`@o,¸¸

startmess:  mov a,#0         ;Register A = 0
startchron:  inc a            ;Register A inkrementieren 1Zyklus 
((1/Takt) * 1000=T)
        jb Taster2,endechron ;Wenn T2 auf high dann Messstop  2Zyklen
        sjmp startchron    ;Jump wenn T2 nicht high 2Zyklen
                      ;Angenommen 5 Leds sind an nach dem stop d.h. 23 
Zyklen sind vergangen (5x normaler durchlauf)(wenn T2 high 2zyklen)
                      ;1 Zyklus entspricht 1µs bei 12MHz

endechron:  mov b,#3          ;Reg B mit #3 (aufgrund der Zyklen)
        MUL AB          ;Multipliziere Reg A mit Reg B
        mov b,a          ;Inhalt von Reg A nach Reg B
        mov a,#50000      ;Reg A mit #50000 (Abstand der Lichtschranken)
        DIV AB          ;Dividiere Reg A mit Reg B
        mov b,#3          ;Inhalt von Reg A nach Reg B
        MUL AB          ;Multipliziere Reg A mit Reg B
        mov b,a          ;Inhalt von Reg A nach Reg B
        reti            ;Rückkehr aus dem Interrupt

;¸,o@´`'@o,¸¸,o@´`@o,¸¸,o@´`'@o,¸¸,o@´`'@o,¸¸,o@o,¸Interrupt-Service-Rou 
tine  (MESSPROGRAMM-chrony)-ENDE ¸,o@´`'@o,¸¸,o@´`@o,¸¸

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren