PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RS232 mit Atmega88



robo-sebi
29.12.2008, 10:07
Hallo,

mit meinem Atmega88 wollte ich über einen MAX232N mit dem Computer kommunizieren. Dummerweise erhalte ich im Terminal nur immer dieses Ç-Zeichen anstatt "Hello" auszugeben. Auch ohne MAX232N mit einem 1k-Widerstand (zw. PinD.3 und RXD) und folgendem Quelltext änderte sich nichts daran:


$regfile = "m88def.dat"
$crystal = 16000000
Open "comd.3:4800,8,n,1,INVERTED" For Output As #2

Do
Print #2 , "Hello"
Loop

An den Taktraten wird es wohl nicht liegen, das habe ich im Terminal richtig eingestellt und auch schon verschiedene probiert.

MfG Sebastian

python_rocks
29.12.2008, 10:34
Hallo Sebastian!

Vielleicht findest du den Fehler selbst.

- http://halvar.at/elektronik/kleiner_bascom_avr_kurs/max232_1zu1kabel/
- http://halvar.at/elektronik/kleiner_bascom_avr_kurs/uart_rs232_zum_computer/
- http://halvar.at/elektronik/kleiner_bascom_avr_kurs/uart_rs232_vom_computer/
- http://halvar.at/elektronik/kleiner_bascom_avr_kurs/uart_rs232_vom_computer_2/

mfg
Gerold
:-)

robo-sebi
29.12.2008, 11:48
Hallo,
vielen Dank für die Antwort. Aber ich weiß, wie man die Schnittstelle anschließt.

MfG Sebastian

python_rocks
29.12.2008, 12:31
vielen Dank für die Antwort. Aber ich weiß, wie man die Schnittstelle anschließt
Hallo Sebastian!

Das war nicht der einzige Link...

Wie auch immer. Da du "#2" als Filehandler verwendest, nehme ich mal an, dass du den Hardware-UART des ATmega88 bereits in Verwendung hast und es damit keine Probleme gibt. Du möchtest also einen zweiten UART-Kanal zum Senden öffnen. Da du den MAX232 verwendest, darfst du den Parameter "INVERTED" nicht mit angeben.

Und falls ich falsch liege und du den Hardware-UART noch nicht verwendest, dann --> nimm den Hardware-UART und vergiss den OPEN-Befehl.

Und vielleicht liegt es ja doch am Takt. Ich weiß ja nicht, ob du den ATmega88 mit den Fuse-Bits auf den externen Quarz eingestellt hast und ob das wirklich ein 16 MHz-Quarz ist, so wie du es im Programm angegeben hast.

mfg
Gerold
:-)

robo-sebi
30.12.2008, 14:28
Hallo,

ich hab alles mögliche schon ausprobiert:
1. Die Fuses stimmen, sonst würden auf dem ATm88 nicht die vielen anderen Projekte laufen.
2. Der Hardware-Uart als auch der simulierte Uart führen zum gleichen Ergebnis mit MAX232 oder mit Widerstand (und Inverted).

Die Software müsste auch ohne weiteres auf dem Avr laufen. Ich hab auch schon den uc mit einem Taster verbunden und auf Knopfdruck gesendet. Dass dies funktioniert beweist das Terminal, welches erst bei Tastendruck etwas anzeigt. Doch frage ich mich immer noch, warum nicht "Hello" angezeigt wird sondern ÇÇÇÇÇÇÇÇÇ.
Auf zwei Computern habe ich das Beispiel mit dem gleichen Ergebnis getestet. Einzige Ursache, die mir spontan einfällt, ist, dass die Demoversion von Bascom einen Bug hat.

MfG Sebastian