Tilden eingefügt, direkt-echo entfernt.
(wir produzieren ja damit einen 50% Baudraten fehler durch das 0.5 Bit
Druckbare Version
Tilden eingefügt, direkt-echo entfernt.
(wir produzieren ja damit einen 50% Baudraten fehler durch das 0.5 Bit
´Sorry musste wech vorhin..
Habs jetzt nomma ausprobiert:
H˙A˙L˙L˙O˙ ˙?˙?˙?˙?˙?˙ ˙t˙e˙s˙t˙ ˙.˙.˙.˙.˙.˙ ˙@˙@˙@˙@˙@˙@˙@˙ ˙ ˙ ˙ ˙ ˙ ˙
waren jetzt meine Testeingaben.
Wenn ma aber Direkt-Echo entfernen sollt doch eigentlich nur noch 1 Zeichen kommen oder bin ich jetzt ganz doofy... :|
Traraaa !
Ich hab bei mir eine Teststellung aufgebaut und darf dir sagen, dass das Zeugs funktioniert. ich schick dir noch heute die adaptierte Source. Erläuterung folgt, zum Mäusemelken !
Cool !!! 8) \:D/
Aber an was hatts dann die ganze Zeit gelegen ??
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.
Hab die Änderungen jetzt auch vorgenommen. Bleibt so wie beim letzten Stand. Erst richtiges Echo und dann noch ein Zeichen mit. Wie sieht denn dein Doppel-Echo aus ?
Aber echt supi, das ma jetzt schon davon ausgehen können, das Timing etc. richtig ist.
Bei mir geht, scheinbar, einfach der Cursor einen schritt zu weit. So wie wenn man gesperrt schreiben würde. Wie gesagt, das erste Zeichen stimmt, dann sendet er wahrscheinlich ein (pseudo) Startbit zu viel oder sowas, also eigentlich kein wirkliches Zeichen.
Ich hab eine Terminalemulation, die würde auch binärcode darstellen, zeigt aber nix.
Das macht mir aber keine Sorgen, ich werd' das jetzt testen.
So. Ich mußte doch tatsächlich von dem 1.5 Bit umsteigen auf 0.5 Bit.
d.h. ich bin mitten im Startbit, wenn es eines ist. Erst wenn hier die Leitung auch low ist, gilt das ganze.
Eigentlich war es das. Ziemlich hartnäckiges Zeugs.
Ich habe meine Source attached, is für Winavr und Meg32 mit 8 MHZ.
Du bist so lieb, und übersetzt das selbst in deine Syntax und in deinen Quarz, mit graut aus begreiflichen Gründen schon vor allem, was mit "UA" anfängt.
Das Programm ist funktionsfähig und echoed was man schreibt
0.5 Bit --> bei dir , glaub ich (256 - 210) /2 --> 23
also TIM0_preload --> 210
INT0_preload --> 210 + 23 = 233 !!!!!
Versuch's mal und laß bitte hören.
Hi !
Funzt einwandfrei, nachdem ich nochn bischen mit dem INT0 Preload Wert rumgespielt hab !!
BIG THX FOR HELP !!! 8) \:D/
Hab selber viel gelernt dabei !
Tätarätääää !
Hört man gerne, war auch wirklich eine schwere Geburt und ein drei Meter langer Thread.
Lernen: Klar, am meisten lernt man bei dem, was NICHT geht.
also, keep codin' and let them robbies roll !