Ronny81
24.05.2010, 23:03
Hallo zusammen,
ich stehe vor einem Problem und weiß nicht so recht, wie ich es lösen soll und kann.
Ich übertrage serielle Kommunikation (RS232 TTL 1200,8,N,1) über ein Funkmodul. Leider habe ich jetzt das Problem, dass die Funkübertragung mir teilweise die Bits etwas zu lang oder zu kurz überträgt. Sie werden also leicht "verzerrt". Es ist nicht viel, aber es reicht dafür, dass nicht alle übertragenen Werte richtig ankommen.
Ich habe mir jetzt überlegt, ob es nicht möglich ist die Bits über einen AVR laufen zu lassen und sie dort wieder auf die "richtige" Länge zu bringen.
Also mit:
Bitwait Pinc.1 , Set
Bitwait Pinc.1 , Reset
und einem Timer die Länge der Bits messen und dann
mit
Select Case Bit1
Case 10 To 20 : Gosub 1
Case 20 To 30 : Gosub 2
Case 30 To 40 : Gosub 3
...
End Select
Die "neuen" Bits wieder ausgeben. Nur weiß ich jetzt nicht wie ich mit Bascom einen Pind.1 für 0,8333 ms (Länge des Bits mit 1200 Baud) auf high setzen soll, ohne das Programm im Ablauf (also durch Wait) zu stoppen.
Ich hoffe es hat vielleicht jemand eine gute Idee und kann mir helfen. Danke schon mal.
Gruß Ronny
ich stehe vor einem Problem und weiß nicht so recht, wie ich es lösen soll und kann.
Ich übertrage serielle Kommunikation (RS232 TTL 1200,8,N,1) über ein Funkmodul. Leider habe ich jetzt das Problem, dass die Funkübertragung mir teilweise die Bits etwas zu lang oder zu kurz überträgt. Sie werden also leicht "verzerrt". Es ist nicht viel, aber es reicht dafür, dass nicht alle übertragenen Werte richtig ankommen.
Ich habe mir jetzt überlegt, ob es nicht möglich ist die Bits über einen AVR laufen zu lassen und sie dort wieder auf die "richtige" Länge zu bringen.
Also mit:
Bitwait Pinc.1 , Set
Bitwait Pinc.1 , Reset
und einem Timer die Länge der Bits messen und dann
mit
Select Case Bit1
Case 10 To 20 : Gosub 1
Case 20 To 30 : Gosub 2
Case 30 To 40 : Gosub 3
...
End Select
Die "neuen" Bits wieder ausgeben. Nur weiß ich jetzt nicht wie ich mit Bascom einen Pind.1 für 0,8333 ms (Länge des Bits mit 1200 Baud) auf high setzen soll, ohne das Programm im Ablauf (also durch Wait) zu stoppen.
Ich hoffe es hat vielleicht jemand eine gute Idee und kann mir helfen. Danke schon mal.
Gruß Ronny