Hallo, ich versuche gerade die Periodendauer eines Eingangssignals zu messen, und an einem LCD-Display auszugeben. Das signal startet und stoppt einen Timer - der Timerwert soll dann ausgegeben werden. Jetzt mein Problem: Mein Programm gibt mit meinem Entwicklungsboard nur im Debug Modus (schrittweise Abarbeitung) den korrekten Wert des Timers aus. Wenn es normal läuft werden komischerweise nur zwei Zeichen des Timerwertes ausgegeben. Vielleicht hat ja einer einen Tip. Hier die Umrechnungsroutine von 16bit nach ASCII: ; Ausgabe 16Bit Timer-Wert - benutzt wird die 16bit MDU des 80537 mov a, #00000100b ; Cursor ModeEntry, nach links lcall lcd_steu_aus ; 16bit Wert durch 10 teilen -> Rest ausgeben mov r7, #6 ; 6 Stellen ausgeben loop: mov MD0, Low_Safe ; LowByte des Timerwerts mov MD1, High_Safe ; HighByte des Timerwerts mov MD4, #0ah ; durch mov MD5, #00h ; 10 teilen mov Low_Safe, MD0 ; Wert speichern mov High_Safe, MD1 mov a, MD4 ; Wert ist nur im Low Rest mov b, MD5 ; add a, #30h ; ASCII Zeichen aus Rest lcall lcd_dat_aus ; ausgeben djnz r7, loop mov a, #00000110b ; Entry Mode, Cursor Rechts lcall lcd_steu_aus sjmp loop Danke schonmal Thomas
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.