Hi,

also ich möchte 2 Mega8 miteinander zur Erfolgreichen Komunikation überreden. Habe sie dazu per Drahtbrücken TXT mit RXD gekreuzt verbunden. Am Sender habe ich zur Kontrolle am PC-Terminal noch eine Verbindung zu einem MAX232 aber nur vom TXT. Die Prozzies laufen mit den int. 8MHz und Baud 9600 - ja ich weiß, da gibt es geringe Fehlerprozente - aber wenn beide mit der gleichen "falschen" Taktrate laufen, hebt sich das doch wieder auf?

Senderoutine beschränkt sich darauf, mit Print 1 ein Startbyte zu senden, und dann die 4 Datenbytes, die ich per Overlay-Byte-variablen jeweils einzeln Printe und zwischendurch auch noch je 50msek warten lasse.
Der Empfänger bekommt bei jedem Übertragenen Byte einen URXC-Interrupt, wonach die UDR in eine Prüfvariable übertragen wird. Dann wird nachgesehen, ob die Variable das Startbyte 1 ist und der Empfangszähler >5 in diesem Fall wird der Zähler auf 1 gesetzt. Danach wird die Prüfvariable in eine Buffervariable mit dem Array des Zählers übertragen, diese Buffer sind per Overlay wieder den Variablen der Datenbytes zugeordnet. Und zum Schluß wird der Empfangszähler noch erhöht, bevor die Interruptroutine wieder verlassen wird. Darum auch das 50msek Warten zw. den Printbefehlen am Sender.
Momentan ist das Hauptproblem, daß der Sender nur Datensalat rausbringt. Das Terminal zeigt immer nur so ein O mit nem "Haar" oben dran an (weiß nicht wie das richtig heißt), obwohl ich mit $Crystal=8000000 und $Baud=9600 das doch korrekt eingestellt habe - Fusebits stehen auch auf int. 8MHz. Ich würde ja auch gern ein Quartz mit 7,372800MHz nehmen, aber ich finde mit AVR-Prog dazu die Einstellungen nicht. Dort gibts nur ext Clock, int RCosc., ext RCosc., ext LFXTAL und ext XTAL. Die Einstellung für ext Crystal finde ich dort nicht. Jetzt habe ich mir ein paar Oscillatoren schon bestellt mit den 7,3...MHz aber eigentlich sollte das ganze so klein und leicht wie möglich werden - jedenfalls der Sender....