Hi,

ich würde gerne mit meinem AtMega168 auf einem Minicontrol die serielle Schnittstelle meines Routers auslesen und die Daten dann an meinen Computer schicken.

Der Router hat eine Baudrate von 38400 und mein AtMega läuft mit 9600.

Das Terminalprogramm auf meinem Rechner zeigt mir aber "fast" nur Quatsch an. Bis auf einige Buchstaben oder kurze Wörter steht auch viel Mist in der Ausgabe.

Bsp:
ion:203
005 20070) 2:] M 4MBregi a 6raseors ] ARz

AV
[cAVM :
...............do<\n>[arHERAHz b


[a[ar7ar7_

L<20>?r?W???@<5>
Wo liegt der Fehler?

Ich benutze folgendes Program:
Code:
'----------------------------------------------------------------------
'                         serin_out.bas
'                    (c) 2002-2005 MCS Electronics
' demonstration of DYNAMIC software UART
'----------------------------------------------------------------------

'tip : Also look at OPEN and CLOSE

$regfile = "m168def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000
$baud = 9600

'some variables we will use
Dim S As String * 10
'buffer to save data
Dim B As Long
B = 0

S = Chr(13) + Chr(13) + "Im ready" + Chr(13)
Print S

'DISABLE HW UART
Ucsr0b = 0

Do
   'first get some data via JP1
   Serin B , 4 , D , 2 , 38400 , 0 , 8 , 1
   'now send it
   If B <> 0 Then
     Serout B , 4 , D , 1 , 9600 , 0 , 8 , 1
     '                                      ^ 1 stop bit
     '                                  ^---- 8 data bits
     '                              ^-------- even parity (0=N, 1 = E, 2=O)
     '                         ^------------- baud rate
     '                   ^------------------- pin number
     '               ^----------------------- port so PORTA.0 and PORTA.1 are used
     '           ^--------------------------- for strings pass 0
     '      ^-------------------------------- variable
   End If
Loop
End

'because the baud rate is passed with a variable in theis example, you could change it under user control
'for example check some DIP switches and change the variable mybaud
MfG
Scarabol