Hallo Kann sein dass ich mich mit der Programmierung meines PIC verhaspelt habe. Ich möchte an Ports anstehende BCD Daten mit einer dezimalen Auswahl vergleichen, und mit dem Ergebniss Unterprogramme starten, die für eine LED Matrix 15X5 die Kathodenstrecke schaltet.(Ansteuerung eines ULN 2803). Für meinen Testaufbau benutze ich PORTB zum einlesen.Es soll die Zahl 2948 angezeigt werden, aber es kommt 0040. Wenn ich PORTB überhaupt nicht initialisiere, wird mir die gewünschte Zahl angezeigt ? Im code ist kurz erklärt, was das Programm machen soll. Was kann da nicht funktionieren ? Eventuell kann sich ja mal jemand meines Problems annehmen btw.: PORTB ist nicht beschaltet Grüße Jörn
Tut mir leid, ich kann nicht erkennen, was du mit dem Programm bezweckst. Außerdem kann ich auch keine richtige Logik erkennen. z.B. unter „Uhrzeit1“ fängst du mit „call Zahl2“ an dann erst „call Zahl1 … Zahl3, Zahl4 .. usw. Die binärwerte machen für mich auch keinen Sinn. z.B. vor „Call Zahl5“ hast du b01010000 was Sinn macht aber vor „Call Zahl3“ movest du 0b11110000!? Vielleicht habe ich ja des Grundprinzip nicht erkannt :-(
Ich hatte ja geschrieben, das die Zahl 2984 gezeigt werden soll, deshalb call 2, 9 8,und 4, deshalb dort auch der binärwert von b 00000000. Der Port wird nicht beschaltet, muss also als Eingangswert eine 0 haben Damit sollte der Wert von 2984 angezeigt werden. Die Reihenfolge ist nur ein Ergebnis meines Testversuchs.Natürlich muss später bei Call Zahl0 der Binärwert von b´00000000` am Port verglichen werden. Bei call Zahl9 natürlich d´9´am port B :-) Da wirds dann wieder Logisch , aber erstmal muss es ja funktionieren, und das tut es nicht . Grüße Jörn
Jörn Bastelbob schrieb: > Der Port wird nicht beschaltet, muss also als Eingangswert eine 0 haben Wenn Du die Eingänge auf Masse legst (ev. über Widerstände), dann ist der Eingang auf "0". Offene Eingänge haben oft irgend einen zufälligen Wert.
Hallo John Werde ich mal machen Sonst nix , was ins Auge fällt ?? :-) Grüße Jörn
Hallo John Das war wohl mein Anfängerpech :-(( Jetzt habe ich die Eingänge mit 10K gegen Masse gelegt, und das ganze Programm läuft so wie es soll. Eine Änderung am Port verändert sofort die Anzeige :-)) Da hätte ich eigentlich selbst drauf kommen müssen...... Danke Jörn
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.