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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.