Archiv verlassen und diese Seite im Standarddesign anzeigen : Rs 232 übertrgungsfehler..oder im MC Spukt es
Hi,
also erstaml die Fakten.
Mega 16 und mir RS 232 Treiber und LCDisplay.
und hier der Code.
$regfile = "m16def.dat" ' we use the mega16
$crystal = 8000000
$baud = 9600
Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.4 , Db6 = Portb.1 , Db7 = Portb.3 , E = Portb.5 , Rs = Portb.6
Config Lcd = 16 * 2
'LCD Konfiguration
Enable Interrupts
Cls
Lcd "sende 1"
Do
Print 1
Wait 1
Loop
Ich hoffe der ist nicht zu unverständlich.
Nun zum Poltergeist.
Wenn der Programierstecker auf das AVR Board gesteckt ist dann empfängt das Terminal nichts.
Und wenn man den Stecker ,nach dem Brennen,abzieht empfängt das Terminal
103 121 61 0
oder in Buchstaben
gy=
Wenn man die Baudraten ändert wird ähnlicher "Müll"
empfangen.
Wenn jemand irgeneine Idee hat wäre ich sehr dankbar ,auch weil ich gar keine Ahnung habe.
mfg
Involut
PS um die verwirrung Perfekt zu machen, die Schaltung hat als sie zusammengelötet war einwandfrei gefunzt,lag ein paar monate herum und jetzt dass
du solltest mal als string senden: print "1"
Hi,
der Befehl Print "1" hat genau das gleiche Ergeniss.
Ich habe auch schon 3 mega16 ausprobiert und eine 90s8535 und jedesmal das gleiche Ergeniss.
mfg
Involut
wie wärs mit der baudrate im terminal umstellen?
Hi,
baudrate habe ich von 1200 bist 115000 verändert.
Es wird wie ich oben geschrieben haben nur "Müll" angekommen.
Also nicht ein sonder mehrere Zeichen und schon gar keines welches ich gesendet habe.
Ach ja ich habe eine Quarzoszilator mit 8mhz.
Von Frustrationfaktor hätte ich das alles schon in tonne gekloppt,aber die Tatsache dass man was empfängt ist halt immer noch ausreichend um es zu probieren.
mfg
Involut
Hi,
wenn ich anstatt print
udr = asc ("1")
schreibe wird
103 0 empfangen und als Buchstabe "g"
mfg
inv
Hallo,
vielleicht liegts an der Abweichung von 9600 Baud die du mit einem 8MHz Quarz erzeugst. Für "richtige" 9600 Baud brauchst du so krumme Quarzfrequenzen wie 7,3728 oder 3,6864 MHz.
Schau mal unter Optionen-Compiler-Communication, da siehst du die Abweichung bei der jeweiligen Quarzfrequenz.
Gruß
Uwe
Hi ich bae das mit AVR baud ausgerechnet.
Das prog zeigt einen Fehler von 0% an.
mfg
Inv
Aber eine Zeile drüber steht, das die wirkliche Baudrate 9615 ist.
Theoretisch sollte so eine geringe Abweichung nichts ausmachen, aber
wer weiß??
Um den Fehler mal einzugrenzen kannst du ja mal versuchen ein Zeichen vom Terminalprogramm zu senden und es auf dem LCD ausgeben zu lassen.
...empfangen klaptt nicht.
schmic20
26.02.2005, 15:48
Hallo,
ich habe genau mit dieser Konstellation (Mega16 und 8MHz) solche Probleme.
Ich habe das auch schon hier gepostet, aber keiner hat anscheinend solche Probleme, ausser Du und ich.
Am Baudratenfehler kann es nicht liegen. Der liegt laut Berechnung bei 0,16%.
Bei der Datenmenge fällt das nicht ins Gewicht.
Ich habe alles ausprobiert (Terminal Baudrate verstellt usw). Nichts hat geholfen. Dann habe ich die Taktfrequenz des ATmega16 auf 2MHz geändert und habe wieder einwandfreien Datenverkehr bis 4800Baud gehabt. Bei 9600Baud war dann allerdings der Baudratenfehler zu graoß, so dass ich dann VEREINZELT falsche Zeichen empfangen habe, aber immerhin empfangen.
Bei einer Taktfrequenz von 4MHz kam es dann wieder zu dem Phänomen, das Du hier auch beschrieben hast.
Ich habe es dann darauf geschoben, dass ich drei ATmegas gekauft hatte, die alle diesen Mist machten und bin hier im Forum so verblieben, dass ich bei meiner nächsten Bestellung nochmal ATmega16 mitbestelle und dann probiere ob es evtl. an meinen 3 ATmegas lag (selbe Serie oder so).
Du schreibst aber, dass Deine Schaltung schon funktioniert hat, und jetzt nicht mehr geht.
Jetzt sind wohl die Cracks gefragt, oder?
Wer hat ähnliche Probleme?
Viele Grüße
Michael
Hi,
ich habe alle möglichen MHZ zahlen und baudraten Probiert.
mfg
inv
Hallo Freunde
Ich weiss nicht ob mein "Problem" mit eurem identisch ist, aber es geht auch um das Senden von "Werten" über die RS232.
Ich möchte die Anzeige auf dem Terminalprogramm auf den PC dazu bringen formatiert zu sein um nicht beim vielen Testen dauernd ein "scroll" zu haben. Ich habe mir deshalb aus dem Internet das Terminalprogramm "Hyperterminanl Private Edition geholt, dort die Kommunikation auf COM1: gesetzt und als Terminal-Emulation VT100 verwendet.
Wenn ich nun folgenden Print-Befehl aus BASCOM AVR verwende reagiert das Programm häufig auf die Steuersequenzen teilwweise wie gewollt. Er s:
Printbin 27 ; 91 ; 123 ; 5 ; 125 ; 59 ; 123 ; 1 ; 125 ; 72
Definiere ich statt dessen ein eindimensionales Array, in welchem ich die Steuerbefehle abbilde, geht es überhaupt nicht. Ich sehe die Darstellung der Kodes als Character, aber sie gehen nicht als Steuersequenzen; oder nur zum Teil
Für Euch ist vielleicht das Kommando "printbin" Interessant.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.