Lus
10.12.2008, 12:03
Halli Hallo
Vielleicht kann mir jemand helfen... ich habe ein RS 232 Problem und komme einfach nicht dahinter...
Also, ich habe 2 ATmega8, einer soll etwas messen und über RS 232 senden, der andere soll es auf einem LCDisplay anzeigen.
Der "Messchip macht folgendes:
warten auf einen Befehl: Befehl = waitkey()
wenn er ein c erhält, schickt er ein C zurück (Kommunikationskontrolle)
wenn er ein t erhält, misst er die Temperatur und schickt zurück:
print "T" ; temp
temp ist vom Format string * 6
beim emulator funktioniert das, es kommt z.B. T123456 zurück.
Chip2
sendet c, wenn C zurückkommt geht das Programm einen schritt weiter. Das geht.
Dann kommen die Zeilen
print "t"
Input Wert Noecho
Lcd Wert
"wert" ist von der dimension string * 7
wenn ich das im simulator oder im emulator (mit "print wert" statt "lcd wert") mache, dann sendet der chip richtig "c", sobald "C" zurückkommt sendet er "t" und dann gibt er "T123456" aus. (wenn ich das im Emulator tippe)
Wenn ich aber die beiden Chips zusammenschliesse, dann gibt der anzeigechip nicht "T123456" aus, sondern "CC T123" also wie wenn die Variable "wert" zuerst noch mit alten Zeichen gefüllt würde.
Und ich komme nicht drauf wieso!
Ich habe keinen Serialbuffer aktiviert, Baudrate 9600, Parity None, Databits 8, Stopbits 1.
Beide Chips auf 8Mhz interner RC-Oszi, Kabellänge des RS 232 20m, weder verdrillt noch abgeschirmt. Ich denke das sollte aber nicht das Problem sein, denn die Buchstaben kommen ja sauber an.
Danke an alle Mitdenker... Grinsend
Vielleicht kann mir jemand helfen... ich habe ein RS 232 Problem und komme einfach nicht dahinter...
Also, ich habe 2 ATmega8, einer soll etwas messen und über RS 232 senden, der andere soll es auf einem LCDisplay anzeigen.
Der "Messchip macht folgendes:
warten auf einen Befehl: Befehl = waitkey()
wenn er ein c erhält, schickt er ein C zurück (Kommunikationskontrolle)
wenn er ein t erhält, misst er die Temperatur und schickt zurück:
print "T" ; temp
temp ist vom Format string * 6
beim emulator funktioniert das, es kommt z.B. T123456 zurück.
Chip2
sendet c, wenn C zurückkommt geht das Programm einen schritt weiter. Das geht.
Dann kommen die Zeilen
print "t"
Input Wert Noecho
Lcd Wert
"wert" ist von der dimension string * 7
wenn ich das im simulator oder im emulator (mit "print wert" statt "lcd wert") mache, dann sendet der chip richtig "c", sobald "C" zurückkommt sendet er "t" und dann gibt er "T123456" aus. (wenn ich das im Emulator tippe)
Wenn ich aber die beiden Chips zusammenschliesse, dann gibt der anzeigechip nicht "T123456" aus, sondern "CC T123" also wie wenn die Variable "wert" zuerst noch mit alten Zeichen gefüllt würde.
Und ich komme nicht drauf wieso!
Ich habe keinen Serialbuffer aktiviert, Baudrate 9600, Parity None, Databits 8, Stopbits 1.
Beide Chips auf 8Mhz interner RC-Oszi, Kabellänge des RS 232 20m, weder verdrillt noch abgeschirmt. Ich denke das sollte aber nicht das Problem sein, denn die Buchstaben kommen ja sauber an.
Danke an alle Mitdenker... Grinsend