Schönen Guten Tag ich möchte meine USV gerne mit PIC und LCD über RS232 auswerten Zeichen Senden kann ich an die usv das ist kein problem... nur wie schaffe ich es das dass was der pic dann empfängt mit vernünftig auf meinem LCD anzeigt? bisher kommt auf dem LCD immer nur müll raus kann mir da vielleicht jemand helfen?? kleinen ansatz habe ich schon nur verstehe ich das irgendwie nicht ganz mit Freundlichen Grüßen Marcel Klug
sorry war nicht eingeloggt noch was vergessen Baudrate ist 2,4kb/s Die USV ist von APC SmartUPS 1400
klappt es denn, unabhängig von dem empfangegen Daten von der seriellen Schnittstelle, einen Text auf dem Display anzeigen zu lassen?
Ja das klappt alles wunderabr ich habe es im picsimulatoride laufen lassen jedoch wenn ich versuche die zeichen die über rs232 kommen auf lcd anzuzeigen kommt nur müll oder garnichts wenn ich zahlen eingebe kommen immer nur 0 oder liegt das am simulator?? mfg sunny
kenne den Simulator nicht, denke aber nicht, dass es an dem liegt. Ich bin auch nicht der Assembler Profi... Du kannst doch mal auf debuggen gehen und schauen, was er für Zeichen über die serielle Schnittstelle empängt, oder?
Du initialisierst nirgens das LCD. Die Routine ist zwar da, wird aber nirgens angesprungen.
also das programm läuft so das es mir das gesendete zeichen seriell zurückschickt und über LCD ausgeben soll seriell kommt richtig zurück nur auf lcd kommt nichts vernünftiges ja das init fürs lcd hatte ich vergessen stimmt ist jetzt drinn ändert nur leider nichts am verhalten... irgednwas mache ich falsch... nur was?? bitte helft mir :-) mfg sunny
Na dann teste doch erst mal, ob das LCD überhaupt ein Zeichen anzeigt. Eventuell hapert es ja an der Initialisierung des LCD. Wenn die nicht zu deinem LCD passt, wird dieses auch nichts anzeigen.
das habe ich ja schon weiter oben bestätigt das klappt alles wunderbar! zeichen werden vernünftig angezeigt nur die zeichen die über rs232 kommen werden nicht angezeigt! mfg sunny
Hi, falls es noch jemanden interessiert ich habs rausgefunden. ; Hauptprogrammschleife movlw 'Y' movwf TXREG clrf DatenSindDa movlw 0x05 movwf counter movlw 0xDE call OutLcdControl Zeichen1_1 btfss DatenSindDa, 0 ; wurde was empfangen? goto Zeichen1_1 movlw 0x00 iorwf Zeichen, w call OutLcdDaten movf Zeichen, w movwf TXREG clrf DatenSindDa DECFSZ counter, 1 goto Zeichen1_1 movlw '%' call OutLcdDaten goto fertig fertig movlw 0x88 call OutLcdControl movlw 'F' call OutLcdDaten movlw 'e' call OutLcdDaten movlw 'r' call OutLcdDaten movlw 't' call OutLcdDaten movlw 'i' call OutLcdDaten movlw 'g' call OutLcdDaten ich muss erst einaml null ins arbeitsregister schreiben movlw 0x00 und dananch iorwf Zeichen, w warum das jetzt so ist habe ich noch nicht ganz verstanden... vllt könnte mich da ja mal jemand aufklären, warum nicht direkt movlw Zeichen klappt ?! mfg sunny
Weil du mit movlw die Adresse von Zeichen nach w schreibst und nicht den Inhalt von Zeichen. Um den Inhalt einer Variablen nach w zu laden nimmt man movfw. In deinem Fall also movfw Zeichen (die richtige Schreibweise lautet allerdings movf Zeichen,w)
ahh, jetzt habe ich das verstanden! Besten dank an euch ist ein echt super forum hier! wenn ihr wollt stelle ich mein projekt hier gerne vor wenns fertig ist! mit freundlichen Grüßen Sunny
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.