#fritz#
10.10.2011, 13:14
Ich möchte einen Atmega 8 und einen Atmega 16 seriell über Soft-Uart verbinden.
Beide laufen mit 8 Mhz. Ein externer Quarz ist nicht vorhanden.
Während der Versuche habe ich die Baudrate bis auf 300 reduziert.
Am Ergebnis hat sich nichts geändert.
Scheinbar werden Daten emfangen.
Eine Auswertung für die „4“ im nachfolgenden Code erfolgt aber nicht.
Sender - Atmega 16 -:
For X = 1 To 6
Open "comd.7:300,8,n,1," For Output As #1
Print #1 , X
Waitms 500
Print #1 , 0
Waitms 500
Close #1
Next X
Empfänger -Atmega 8-:
Open "comc.3:300,8,n,1," For Input As #2
Eingangseriell = Inkey(#2)
If Eingangseriell = 4 Then Led1 = 1 Else Led1= 0
If Eingangseriell <> 0 Then Led2 = 1 Else Led2 = 0
Led 2 blinkt im Halbsekundentakt, also werden Daten empfangen.
Led1, welche die „4“ auswerten soll, bleibt aus.
Im Netz liest man oft, dass bei serieller Übertragung ein ext. Quarz notwendig ist, andere behaupten, dass es bei genügend hoher Taktfrequenz des Atmega funktioniert.
Liegt es am fehlenden Quarz, den ich nur sehr schwer nachrüsten kann, weil alle Pins belegt ?
Oder muß ich die Zahlen anders übermitteln ?
Später sollen Zahlen zwischen 1 und 10 000 als Integer übertragen werden.
Ich bin auch mit sehr niedrigen Baudraten zufrieden. Hauptsache es funktioniert.
Wie weit kann man die Baudrate reduzieren ?
Beide laufen mit 8 Mhz. Ein externer Quarz ist nicht vorhanden.
Während der Versuche habe ich die Baudrate bis auf 300 reduziert.
Am Ergebnis hat sich nichts geändert.
Scheinbar werden Daten emfangen.
Eine Auswertung für die „4“ im nachfolgenden Code erfolgt aber nicht.
Sender - Atmega 16 -:
For X = 1 To 6
Open "comd.7:300,8,n,1," For Output As #1
Print #1 , X
Waitms 500
Print #1 , 0
Waitms 500
Close #1
Next X
Empfänger -Atmega 8-:
Open "comc.3:300,8,n,1," For Input As #2
Eingangseriell = Inkey(#2)
If Eingangseriell = 4 Then Led1 = 1 Else Led1= 0
If Eingangseriell <> 0 Then Led2 = 1 Else Led2 = 0
Led 2 blinkt im Halbsekundentakt, also werden Daten empfangen.
Led1, welche die „4“ auswerten soll, bleibt aus.
Im Netz liest man oft, dass bei serieller Übertragung ein ext. Quarz notwendig ist, andere behaupten, dass es bei genügend hoher Taktfrequenz des Atmega funktioniert.
Liegt es am fehlenden Quarz, den ich nur sehr schwer nachrüsten kann, weil alle Pins belegt ?
Oder muß ich die Zahlen anders übermitteln ?
Später sollen Zahlen zwischen 1 und 10 000 als Integer übertragen werden.
Ich bin auch mit sehr niedrigen Baudraten zufrieden. Hauptsache es funktioniert.
Wie weit kann man die Baudrate reduzieren ?