Moin Leute, ich hab mal ein Poti mit dem AN1 des PIC18F4455 verbunden und wollte mir die Spannung auf meinem DV-20208 (HDD44780 komp.) ausgeben lassen. Nachdem ich wegen float2string einige Probleme hatte habe ich mich entschlossen mit Proteus durchzuspielen. Mein Problem ist nun wenn ich die Prozessor Clock auf 4MHz hab in Proteus der Wert immer wieder korrekt an die Stelle geschrieben wird wo ich es hinhaben möchte (XLCDCommand(0x86)). Stelle ich nun aber 20 MHz ein springt er nicht auf diese Stelle zurück sondern überschreibt alles fröhlich, immer wieder und über beide Zeilen des LCD. Bei der XLCD Erstellung über Maestro hab ich 20MHz eingegeben, bei der Berechnung der Delays bin ich auch von 20MHz ausgegangen. Ich hab das Gefühl ich hab da was falsch gemacht, nur komm ich nicht drauf was es sein könnte... Bin froh über jede Hilfe! Gruß Andi
Tja. Nur ist das hier
1 | XLCDInit(); //initialize the LCD module |
2 | XLCDDelay4ms; |
kein Funktionsaufruf! So...
1 | XLCDDelay4ms(); |
... wäre es einer. (und das ganze in weiterer Folge noch ein paar mal)
Ja, da haste recht!!! Das Delay dort hab ich eigentlich eingeführt weil ich dachte ich mach da vom Timing irgendwas falsch. Mit oder ohne dem Delay an der Stelle bleibt das Problem bestehen! Aber danke für den Hinweis! Ohh, noch mehr davon, hatte eben nicht zuende geschaut, ich mach das mal schnell wieder ok.... Gruß Andi
Andreas G. schrieb: > Ja, da haste recht!!! > Das Delay dort hab ich eigentlich eingeführt weil ich dachte ich mach da > vom Timing irgendwas falsch. > Mit oder ohne dem Delay an der Stelle bleibt das Problem bestehen! > Aber danke für den Hinweis! Ich weiß ja nicht, ob du nicht in den LCD-Funktionen denselben Fehler gemacht hast. Auf jeden Fall stinkt deine Fehlerbeschreibung 20 Meter gegen den Wind nach einem Timing-Problem.
Mal was anderes
1 | ....
|
2 | ConvertADC(); |
3 | while(BusyADC()) |
4 | ADCresult = ReadADC(); |
5 | ....
|
so, so. Solange der ADC busy ist liest du ihn aus. Nur wenn er dann fertig ist, dann liest du nichts mehr aus. Hmmmm. Das erscheint mir ... nicht besonders logisch. ALso ich würde warten, solange der ADC busy ist und erst danach auslesen. Aber jeder wie er will.
Ohhh, danke Karl Heinz! Auf einmal findet er die Zeit sich auch um den Sprung zu kümmern (hach). Ich werde es jetzt gleich mal auf den Breadboard ausprobieren. Gruß Andi der Schussel
Andreas G. schrieb: > Andi der Schussel Das hat mit Schussel nichts zu tun. Eher schon damit, dass die Einstellung "Den Code mach ich erst hinterher optisch schön" der falsche Weg ist.
Aber ich muß doch das ConvertADC abwarten und erst wenn er damit fertig ist kann ich den Wert übergeben. Natürlich gehen mir danach alle Messwerte flöten bis wieder ConvertADC aufgerufen wird. Darüber hab ich im Moment aber nicht weiter nachgedacht weil mir erstmal wichtig war das mein LCD einen Messwert anzeigt.
Andreas G. schrieb: > Aber ich muß doch das ConvertADC abwarten und erst wenn er damit fertig > ist kann ich den Wert übergeben. Ja, musst du. Tust du aber nicht. Rück mal deinen Code sauber ein, vielleicht siehst du es dann.
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.