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:
Wo liegt der Fehler?ion:203
005 20070) 2:] M 4MBregi a 6raseors ] ARz
AV
[cAVM :
...............do<\n>[arHERAHz b
[a[ar7ar7_
L<20>?r?W???@<5>
Ich benutze folgendes Program:
MfGCode:'---------------------------------------------------------------------- ' 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
Scarabol







Zitieren
Lesezeichen