PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zum URAT



roboter
30.12.2004, 22:03
Ich habe nun meinen ATMega16 mit Hilfe eines MAX232 (Schaltung dürfte bekannt sein) an meinen PC angeschloßen.

Habe nun aber ein Problem:
Ich wollte das Tutorial zum URAT auf www.rowalt.de machen.

Also Teil 1:
$Regfile = "m16def.dat" 'ATMega16-Deklarationen
$Crystal = 16000000 'Quarz: 16 MHz
$Baud = 9600 'Baudrate der UART: 9600 Baud

Dim i As Byte
Dim wTest As Word

i = 1
wTest = 35000

Do
Printbin i ; wTest
Print "Hallo AVR: " ; i ; wTest
Print "<--->" ;
Loop
End


Die Baudrate müßte doch passen, oder?
Das Programm funktioniert auch, bekomme das "Hallo AVR" auf dem PC zu sehen.

Teil 2:
$Regfile = "m16def.dat" 'ATMega16-Deklarationen
$Crystal = 16000000 'Quarz: 16 MHz
$Baud = 9600 'Baudrate der UART: 9600 Baud

Dim i As Byte

Do
If USR.RXC = 1 Then 'Wenn Byte empfangen...
i = UDR 'Byte aus UART auslesen
Select Case i
Case "H"
Print "Hallo AVR"
Case "h"
Print "hallo avr"
Case Else
Print "Unbekannter Befehl"
End Select
End If
Loop
End


Nur das Funktioniert nicht: Bekomme nur wirre Zeichen auf den PC.
Aber das Senden muß ja funktionieren, Teil 1 funktioniert ja.
Warum bekomme ich bei Teil 2 nichts vernünftiges vom µC?

Hessibaby
31.12.2004, 10:10
Hi Roboter,

ausser der BAUDrate müssen auch die Wordlänge (7/8 bit und die Parity non/even/odd) gesetzt werden dann klappt´s auch mit dem Nachbarn.

Guten Rutsch

Hartmut

roboter
31.12.2004, 11:29
Bin jetzt ein bißchen verwirrt:
die Wordlänge (7/8 bit und die Parity non/even/odd)Auf http://www.rowalt.de/mc/avr/avrboard/04/avrb04.htm steht davon irgendwie nichts (oder ich kann nicht lesen :mrgreen: )

bluebrother
31.12.2004, 11:48
Hast du die Fuses für den Takt richtig gesetzt? Per default läuft der mit 1MHz und dann stimmen natürlich die Werte für die Baudrate nicht.

roboter
31.12.2004, 12:01
Habe die Fuse Bits wie auf dem Bild gesetzt. Ich benutzte einen 16MHz Quarz.


Was ich nicht verstehe, ist das das Senden vom µC zum PC in Teil 1 funktioniert, deshalb müßte ja selbst wenn das senden vom PC zum µC nicht funkioniert, in Teil 2 wenigstens der String "Unbekannter Befehl" zurückkommen.

PicNick
31.12.2004, 13:08
Hi, Roboter !
Wenn "Hello World" kommt, ist das ganze UART-Zeugs in Ordnung.
Wenn du aber mehr schreibst, überholt er sich vielleicht selber und dann kommt "wtlbrnft"

Versuch's mal mit ein bißchen Buffer

Config Serialin = Buffered , Size = 24 'RS232 Inp buffered
Config Serialout = Buffered , Size = 24 'RS232 Out buffered

Klappt es noch immer nicht, gib Laut

mfg robert

31.12.2004, 13:52
Problem hat sich erledigt: Habe mich vertippt und einen falschen Quarz angegeben. ](*,) Obwohl ich das alles immer und immer wieder nachgeschaut habe, ist mir das nicht aufgefallen :oops: 8-[ ](*,)

Aber nochmal ne andere Frage: Wenn ich den Mega16 mit PonyProg programmiere, bekomme ich immer die Fehlermeldung "Write failed". Aber es läuft trotzdem. Woher kommt sowas?

roboter
31.12.2004, 13:54
Das war ich gerade, vergessen einzuloggen.

Habe aber eh noch was: Wenn ich meinen M16 und einen AT90S2313 verbinden will, brauche ich die Schaltung mit dem MAX232 doch nicht, oder?

recycle
31.12.2004, 14:13
Habe aber eh noch was: Wenn ich meinen M16 und einen AT90S2313 verbinden will, brauche ich die Schaltung mit dem MAX232 doch nicht, oder?

Nein, den Max232 brauchst du nur wenn du einen µC mit dem PC verbindest, weil die serielle Schnittstelle vom PC mit einer anderen Spannung arbeitet.