PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Baudratenkonverter 9600 -> 4800



MAxK
01.10.2007, 02:01
Hallo,
da ich einige Zeit nichts mehr mit Bascom programmiert habe will ich euch mal fragen, ob das machbar ist.

Ich habe noch im Hinterkopf das mit BASCOM eine Software-UART realisierbar ist.

Folgende Idee:
Ich habe ein Gerät das mit 9600Baud Daten(ASCII) ausgibt. Ein weiteres Gerät empfängt aber nur mit 4800Baud. Kann ich nicht jetzt einen zB Tiny12L nutzen, der über die "HardwareUart" den ASCII-String empfängt und über die Software(4800) wieder ausgibt. Das Daten verloren gehen ist klar; ist aber nicht schlimm, da sie mehrmals vom Sender wiederholt werden.

Was denkt ihr? Gab es so einen Ansatz vielleicht schon mal?

dennisstrehl
01.10.2007, 02:34
Du brauchst halt 'nen Zwischenspeicher (FIFO) für die Daten, dafür braucht man SRAM, und davon haben die Tinys nicht viel. Wie viele Bytes du brauchst musste selber wissen. Dann dürfte es nicht mehr sonderlich schwer sein. Wenn was ankommt, in den FIFO rein, wenn ein Bit per Software gesendet wurde, das nächste aus dem FIFO senden.

sebastian.heyn
01.10.2007, 08:17
Das dürfte ohne weiteres mit einem Tiny45 machbar sein.

Wieviel Bytes sendet der Sender in einem Paket? (Das wäre wichtig zu wissen)

chr-mt
01.10.2007, 08:22
http://www.mikrocontroller.net/topic/79813#666143
Es geht um eine GPS-Maus, also NMEA Daten

Gruß
Christopher

sebastian.heyn
01.10.2007, 08:36
Naja dann ist das ja ganz easy.
Ich kenn jetzt GPS Daten nicht ganz, deshalb würde ich (vorrausgesetzt ein LF wird gesendet) so vorgehen

Open "comd.1:4800,8,n,1" For Output As #2

do
idle
loop
end

Uart_interrupt:
a=udr
gpsstring=gpsstring+str(a)
if a=10 then gosub ausgabe ' 10=line feed
return

ausgabe:
print #2,gpsstring
gpsstring=""
return