Napisałem sobie taką oto procedurę odczytu z UART w przerwaniu:
Tylko teraz nie jestem pewien co zrobić by odczytane dane trafiły w odpowiednie miejsce w programie głównym.
Wymyśliłem że może to zrobić tak:
I tak dalej, czyli aby mieć pewność że zmienna Todczyt zawiera odpowiednie dane i są one umieszczane w odpowiednim miejscu muszę stosować dodatkową flagę C która jest zmienną typu Byte.
Czy może istnieje inny sposób ? Jak wy to rozwiązujecie ?
Odczyt:
Znak = Udr
If Bc < Cmaxchar Then
Incr Bc
Select Case Znak
Case 13 'pomijanie CR
Case 10 'koniec odczytu linii z UART
If Znak <> "" Then
Bc = Cmaxchar
B = 1 'flaga odebrania CRLF
End If
Case Else
Todczyt = Todczyt + Chr(znak)
End Select
End If
ReturnTylko teraz nie jestem pewien co zrobić by odczytane dane trafiły w odpowiednie miejsce w programie głównym.
Wymyśliłem że może to zrobić tak:
do
...
'jakieś instrukcje
C=1 'flaga miejsca w które ma trafić odczytana zmienna Todczyt
Print komenda AT '
if B=1 and C=1 then
instrukcje obsługujace zmienną Todczyt
B=0
endif
C=0
....
kolejne instrukcje
C=2
Print kolejna komenda AT
if B=1 and C=2 then
instrukcje obsługujące zmienną Todczyt
B=0
endif
....
loop
I tak dalej, czyli aby mieć pewność że zmienna Todczyt zawiera odpowiednie dane i są one umieszczane w odpowiednim miejscu muszę stosować dodatkową flagę C która jest zmienną typu Byte.
Czy może istnieje inny sposób ? Jak wy to rozwiązujecie ?