Drodzy koledzy. Mam poprawnie skonfigurowane połączenie pomiędzy dwoma Atmegami8 przez RS485. Nie ma problemu z komunikacją wszystkie znaki odbieram, niestety pojawia się przed każdym ciągiem danych znak prawdopodobnie "spacji".
Na razie robię proste testy na RS485, ale później muszę użyć tego do komunikacji między ruchomą głową a sterownikiem.
1. Najpierw próbowałem zapisywać otrzymane ciągi znaków(tylko liczby) do zmiennej tybu BYTE, ale udawała się tylko pierwsza komunikacja, następnym razem LCD wyświetla "0".
2. Potem spróbowałem otrzymane znaki zapisać do zmiennej typu String*3, wszystko pięknie ładnie ale pojawia mi się znak spacji, i zamiast wyświetlać "123", wyświetla mi " 123", co chyba nei umożliwia "przekopiowanie" jej do zmiennej typu BYTE.
Co mam zrobić aby usunąć tę spacje i jak następnie otrzymane dane "wrzucić" do zmiennej typu BYTE lub Integer (potrzebne jest mi to ponieważ będą wykonywane na nich operacje liczbowe)?
Zamieszczam listening nadajnika i odbiornika.
Odbiornik:
Nadajnik:
Pozdrawiam i z góry dziękuje za pomoc.
Na razie robię proste testy na RS485, ale później muszę użyć tego do komunikacji między ruchomą głową a sterownikiem.
1. Najpierw próbowałem zapisywać otrzymane ciągi znaków(tylko liczby) do zmiennej tybu BYTE, ale udawała się tylko pierwsza komunikacja, następnym razem LCD wyświetla "0".
2. Potem spróbowałem otrzymane znaki zapisać do zmiennej typu String*3, wszystko pięknie ładnie ale pojawia mi się znak spacji, i zamiast wyświetlać "123", wyświetla mi " 123", co chyba nei umożliwia "przekopiowanie" jej do zmiennej typu BYTE.
Co mam zrobić aby usunąć tę spacje i jak następnie otrzymane dane "wrzucić" do zmiennej typu BYTE lub Integer (potrzebne jest mi to ponieważ będą wykonywane na nich operacje liczbowe)?
Zamieszczam listening nadajnika i odbiornika.
Odbiornik:
$crystal = 1000000
$baud = 600
Dim A1 As String * 3
Dim B1 As String * 3
Cursor Off
Config Pind.2 = Output
Config Pind.7 = Output
Enable Interrupts
Reset Portd.2
Do
Cls
Lcd "CZEKAM NA DANE"
Input A1
Input B1
Cls
Lcd A1
Locate 2 , 1
Lcd B1
Wait 2
Loop
End
Nadajnik:
$crystal = 1000000
$baud = 600
Dim A As Byte
Dim B As Byte
Declare Sub Wyslij
A = 0
B = 0
Config Pind.2 = Output
Config Pind.7 = Input
Config Pinb.0 = Output
Enable Interrupts
Set Portd.2
Do
If Pind.7 = 1 Then
Gosub Wyslij
End If
Loop
End
Sub Wyslij:
Incr A
Incr B
Incr B
Print A
Waitms 10
Print B
Waitms 500
Return
End Sub
Pozdrawiam i z góry dziękuje za pomoc.