hi,
ich kriegt die übertragung über die rs232 schnittstelle einfach nicht
hin.
was mache ich falsch??
hab jetzt nach zwei tagen immer noch keinen fehler gefunden jetzt hab
ich auch schon gedacht dass vielleicht des kabel nen bruch hat, aber
des is es auch nicht. dann vielleicht dass die com-ports kaputt sind
weil der pc schon 41/2 jahre alt ist und die pci-steckplätze auch
kaputt sind, dass es vielleicht auch jetzt den uart erwischt hat, aber
des is es auch nicht.
jetzt weiss ich nicht weiter. ich hab kein oszi, kann nix nachmessen.
also jetzt kann es nur noch am programm, quarz, oder max232a liegen.
wie gesagt ich hab aber kein oszi und kann nix nachmessen.
aber den quarz schliess ich aus. der max232a ist richtig beschaltet,
den schliess ich auch irgendwie aus. bleibt noch des prog.
hier der quelltext schaut euch den bitte mal an ich find nix mehr.
Vom PIC versteh ich leider nichts, da müssen andere aushelfen.
Aber auch wenn du keinen Messpark hast, kannst du einen
einfachen Test machen, bei dem du schon vieles aussortieren
kannst.
Nimm mal den PIC aus dem Sockel. Dann verbindest du im Sockel
mit einem Stück Draht die TX mit der RX Leitung.
Wenn du jetzt am PC drauflos tippst, musst du alles was du
tippst auch sehen. Zur Kontrolle die Drahtbrücke entfernen
und das Echo muss aufhören.
Damit hast Du getestet:
das Kabel
den MAX232
ok hab des jetzt so gemacht und am max232 kann auch nicht liegen, der
funktioniert. den quarz hab ich auch ausgetausch und es geht immer noch
nicht, also schliess ich den auch aus.
bleibt nur noch das programm.
was is da falsch?
ne hab ich leider nicht zur hand, aber des muss doch auch so gehen. ich
hab ja die wartenschleifen auf 9600bps recht genau abgestimmt.
ich will die zahl 73 übertragen und es kommt der buchstabe m bzw die
zahl 109 an. wie kann des sein.
Probiere mal mit einem Wert, ob du einen systematischen Fehler im
Programm hast.
Jetzt:
1
Bit76543210
2
3
73=0x49=0b01001001
4
109=0x6D=0b01101101
5
^^
Bei der Übertragung wird Bit0 zuerst und Bit 7 zuletzt übertragen. Die
beiden Fehler liegen an Stellen, wo zwei 0 Bits hintereinander kommen.
Kann das Sendeprogramm damit umgehen?
BTW. wenn du sonst keine Tools wie ein Oszi hast, kannst du dir mit
einer LED und saumäßig langen Verzögerungsschleifen eine einfache
optische Anzeige mit 1 Baud oder so basteln, um die Senderoutine zu
testen.
Hallo
Ein ähnliches Problem hatte ich auch. Hat sich irgendwie von selbst
gelöst, eines ist mir jedoch aufgefallen: zuerst UART-Verbindung
erstellen, DANN Mikrocontroller einschalten.
Keine Ahnung wieso. Keine Ahnung, ob das solid ist. Vielleicht einfach
mal probieren? ;-)
Gruss
Michael
also mir ist jetzt was auf gefallen. ich hab kein timing problem.
zahl 73 wird gesendet: 01001001
des kommt an: 01101101
zahl 73 wird gesendet: 01001001
des was ankommt umdrehen: 10110110
zahl 73 wird gesendet: 01001001
des was ankommt inventieren: 01001001
mein prob liegt bei der reihen folge der zu sendenden bits und beim
zustand der gesendet wird.
danke für eure antworten