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 :-)