Forum: Mikrocontroller und Digitale Elektronik Bascom Siebensegment Codeproblem


von Tommy T. (thomas_k86)


Angehängte Dateien:

Lesenswert?

Hallo!!

Hab eine Frage!!Vielleicht weiss wer was da los ist.
Bei dem Code im Anhang hab ich das Problem,dass,wenn die Drehzahl unter
1000 U/min angezeigt werden soll,springt die Anzeige ganz nach links.
Also z.B.   " 874_ _ "  U/min   es sollte aber   "  _ _847" U/min 
heissen. Ist die Drehzahl über 1000 U/min dann stimmt es wieder. Dann 
heisst es z.B.    " _1347 U/min "
Wo liegt denn da der Fehler??

von Grufti (Gast)


Lesenswert?

Tommy Tomatronic schrieb:
> Wo liegt denn da der Fehler??

1
   Y = Str(freq)
2
   If Z(5) = 0 Then                                         'Führende Nullen eliminieren
3
    Do
4
5
     Z(5) = Z(4)
6
     Z(4) = Z(3)
7
     Z(3) = Z(2)
8
     Z(2) = Z(1)
9
     Z(1) = 0
10
    Loop Until Z(5) > 0
11
   End If

Hier möglicherweise. Ein String wird in Bascom mit einem zusätzlichen 
Nullbyte am Ende im Speicher abgelegt. Eine dreistellige Frequenz hat in 
Y an der vierten Stelle ein Nullbyte. Im Overlay Z fragst du aber die 
fünfte Stelle ab. Es ist nicht definiert/unbekannt, was da steht und 
deshalb werden wahrscheinlich die Ziffern nicht gerade gerückt. Bei 
vierstelliger Drehzahl steht an fünfter Stelle die Null und es klappt... 
???

Vor "Y = Str(freq)" mal Z(1) bis Z(5) mit Nullen beschreiben und 
schaun...

von Tommy T. (thomas_k86)


Lesenswert?

Grufti schrieb:
> Vor "Y = Str(freq)" mal Z(1) bis Z(5) mit Nullen beschreiben und
> schaun...

OOOHHHHH!!!!
Herzlichen dank!!!

Es funzt!  :)

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.