Ich hab das eben so aufgebaut, daß ich PD2 u. PD0 (rx) verbunden habe und halt das ganze prescale u. preload f. 8 MHZ angepaßt habe. Senden hatt' ich ja schon ("hello, world") also habe ich das ganze INT0 -Zeugs eigentlich mit cut & paste aus unserem Programm übernommen. Und hatte auch bei der ersten Versuchen prompt ein ähnliches Ergebnis. Nämlich nix. d.h es schien so, als würde INT0 zwar anspringen, aber die TImer-ISR irgendwie nicht laufen (rxcount 0). Dann hab ich die ganze INT0 wieder auskommentiert und das Start-Bit in der Main-Schleife abgefragt. Und wieder war nix mit rxcount. Da ich die Timer-routine aber eigentlich nie disable, und senden ging ja immer, war das rätselhaft.
Dann stieg in mir ein Verdacht auf, und sieh, es ging auf einmal ruckartig.
und zwar hab ich rx- u. txflag zusammengelegt und die bit-names umdefiniert
TX_M_SEND 1
RX_M_RECV 4
RX_M_DATA 8
d.h mit edit replace hab ich aus bRxFlag ebenfalls bTxFlag gemacht.
ich hab zwar noch irgendwo den Fehler, daß mein echo immer zusätzlich ein zweites Zeichen ausgibt, aber das Problem find ich.
Jetzt hol ich mir nochmal dein HEX um auch dein Programm in der Richtung zu kontrollieren (wer rechnet mit sowas) also irgendwie ist das kein Beweis, daß das bei dir das gleiche Problem ist.
(die Timer-ISR kriegt den Flag RX_M_RECEIVE einfach nicht mit)
aber es ist mal eindeutig der Beweis da, daß das Programm-Konzept mit Timing, 1 u. 1.5 Bit und alles drumherum) stimmt und nur solche Idiotien der Grund für das Massaker sind.
Also die Version Sw-uart-2 von gestern paßt, nur eben die obige Änderung müßtest du mal versuchen.
Ich such mal jetzt den Grund für das doppel-Echo und versuch das ganze noch zu beweisen.
Lesezeichen