Hallo liebe Forumleser, ich habe hier schon viel zum Thema Mikrocontroller sowohl Atmega als auch 8051 dazu lernen können (Danke eurer super Forumsbeiträge) doch jetzt stehe ich vor einem Problem. Ich habe hier ein Multimeter (Agilent 34401A) das ich mit einem AT89C51ED2 über UART verbinden möchte. Es soll per Taster in verschiedene Modis geschalten werden können, z.B. widerstandsmessung oder Spannungsmessung. Die Messwerte sollen dann zum MC geschickt werden und auf dem LCD dargestellt werden. Ich kann momentan zwar Befehle an das Messgerät schicken, z.B. das es sich in den Remote Modus schaltet oder einen Error wieder resetet, jedoch bekomm ich keine Daten vom Messgerät zu meinem MC geschickt. Ich programmiere mit Ride 7 in Assembler und habe dort im Debug Modus mein Programm getestet (dort kann man direkt über UART mit dem Messgerät testen). Ich bekomme dort auch Daten vom Messgerät wenn ich z.B. *IDN? schicken bekommen ich den Namen des Messgeärts im Debug Modus angezeigt. Auch die Messwerte kommen bei mir an. Starte ich nun das ganze im MC schickt er zwar die Befehle, es erscheint jedoch nichts am Display. Was ich gerade noch festgestellt habe ist, das anscheinend das RI Flag nicht gesetzt wird, ich habe im Code einfach nach dem Uart Receive eine Ausgabe von 'A' auf das Display gemacht, jedoch wird dieser Code schon nicht mehr ausgefürt, somit hängt er anscheinend im UART_Receive fest. Vielleicht ist das ein Anhaltspunkt. Die UART Kommunikation zwischen PC und MC funktioniert einwandfrei, ich kann sowohl Daten zum MC schicken, als auch empfangen, somit scheidet ein Hardware defekt aus (Board ist neu, und selbst entwickelt) INFOS: Messgerät: Agilent 34401A (Befehle SCPI Code) Entwicklungsumgebunt AT89C51ED2: Ride7 Assembler Display: HD44780 UART: Baudrate 9600, Parität NONE, 8 Datenbits Habe im Anhang meine 3 Projektdateien angehängt, vielleicht findet jemand einen Fehler, oder weis eine Antwort auf mein Problem. Ich bedanke mich schon einmal im vorraus, und freue mich mit euch diskutieren zu können :-)
Kleiner Nachtrag, hab die falsche UART Datei angehängt, hier die neue geänderte. Beim UART Init, hab ich beim Timer noch was vergessen gehabt.
Hat sich erledigt, das Multimeter hat noch ein High Signal auf der DCS Leitung gebraucht um das Senden von Daten freizugeben.
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.