Witam! Państwa bardzo serdecznie, jednocześnie zwracając się do Państwa z poniżej opisanym problemem.
Otóż chcę zrealizować transmisję w oparciu o standard RS485 między dwoma mikrokontrolerami ATtiny2313 firmy ATMEL Corporation.
Schemat zestawionego układu przedstawiono na poniższej rycinie.
Próbując zrealizować ową transmisję napisałem kilka programów dla każdego z mikrokontrolerów, z których niestety pozostało zaledwie dwa (po jednym dla każdego mikrokontrolera). Jest to spowodowane przerabianiem kodu źródłowego po każdej nieudanej próbie. Owe kody programów jakie miały realizować mikrokontrolery napisano w języku BASCOM w środowisku BASCOM-AVR, a ich listingi przedstawiono
poniżej.
Układ przedstawiony na powyższym schemacie ma za zadanie realizować następujące zadania. A, mianowicie pierwszy układ zwany dalej
układem nadawczym wysyła pewne polecenia do drugiego układu (zwanego układem odbiorczym), do którego podłączono diodę LED.
Polecenia odbierane przez układ odbiorczy mają za zadanie sterować diodą LED (zapalać ją lub gasić). Zgodnie z poniższym listingiem,
gdy układ nadawczy wyśle do układu odbiorczego polecenie "zaswiec" - to układ odbiorczy ma za zadanie zaświecić diodę LED. Gdy, zaś układ nadawczy wyśle polecenie "zgas" - to układ odbiorczy ma zgasić diodę LED. Zadanie proste, ale ja dość długo już próbuję je zrealizować i niestety moje próby za każdym razem kończą się fiaskiem. Zadanie jest bardzo proste, a to za sprawą faktu ,iż ma ono bardziej charakter edukacyjny.
Bardzo proszę o pomoc w kwestii rozwiązania opisanego problemu.
Czy, ktoś z Państwa mógłby ewentualnie poprawić moje błędne kody? Podać listingi z poprawnym rozwiązaniem owego problemu?
Listingi:
Listing 1 - układ nadawczy:
Listing 2 - układ odbiorczy:
Otóż chcę zrealizować transmisję w oparciu o standard RS485 między dwoma mikrokontrolerami ATtiny2313 firmy ATMEL Corporation.
Schemat zestawionego układu przedstawiono na poniższej rycinie.
Próbując zrealizować ową transmisję napisałem kilka programów dla każdego z mikrokontrolerów, z których niestety pozostało zaledwie dwa (po jednym dla każdego mikrokontrolera). Jest to spowodowane przerabianiem kodu źródłowego po każdej nieudanej próbie. Owe kody programów jakie miały realizować mikrokontrolery napisano w języku BASCOM w środowisku BASCOM-AVR, a ich listingi przedstawiono
poniżej.
Układ przedstawiony na powyższym schemacie ma za zadanie realizować następujące zadania. A, mianowicie pierwszy układ zwany dalej
układem nadawczym wysyła pewne polecenia do drugiego układu (zwanego układem odbiorczym), do którego podłączono diodę LED.
Polecenia odbierane przez układ odbiorczy mają za zadanie sterować diodą LED (zapalać ją lub gasić). Zgodnie z poniższym listingiem,
gdy układ nadawczy wyśle do układu odbiorczego polecenie "zaswiec" - to układ odbiorczy ma za zadanie zaświecić diodę LED. Gdy, zaś układ nadawczy wyśle polecenie "zgas" - to układ odbiorczy ma zgasić diodę LED. Zadanie proste, ale ja dość długo już próbuję je zrealizować i niestety moje próby za każdym razem kończą się fiaskiem. Zadanie jest bardzo proste, a to za sprawą faktu ,iż ma ono bardziej charakter edukacyjny.
Bardzo proszę o pomoc w kwestii rozwiązania opisanego problemu.
Czy, ktoś z Państwa mógłby ewentualnie poprawić moje błędne kody? Podać listingi z poprawnym rozwiązaniem owego problemu?
Listingi:
Listing 1 - układ nadawczy:
Dim B As Byte
Dim A As Byte
A = 1
B = 6
Config Pind.5 = Output
Config Pind.4 = Output
Config Pind.2 = Output 'linia pd.2 jako wyjscie
Re_de Alias Pind.2 'przypisanie aliasu linii pd.2, re_de steruje kierunkiem transmisji konwertera
Reset Re_de 'przelaczenie konwertera rs485 na odbiornik
Set Re_de 'przelaczenie konwertera rs485 na nadajnik
Do
Reset Re_de 'przelaczenie konwertera rs485 na odbiornik
Set Re_de 'przelaczenie konwertera rs485 na nadajnik
If Pind.4 = 0 Then
Print "zaswiec"
Waitms 250
End If
If Pind.5 = 0 Then
Print "zgas"
Waitms 250
End If
Loop
EndListing 2 - układ odbiorczy:
Dim B As String *10
B = "a"
Dim A As Byte
A = 5
Config Pind.5 = Output
Config Pind.2 = Output 'linia pd.2 jako wyjscie
Re_de Alias Pind.2 'przypisanie aliasu linii pd.2, re_de steruje kierunkiem transmisji konwertera
Reset Re_de 'przelaczenie konwertera rs485 na odbiornik
Do
Reset Re_de 'przelaczenie konwertera rs485 na odbiornik
B = Inkey()
If B = "zaswiec" Then
Pind.5 = 0
Waitms 250
End If
If B = "zgas" Then
Pind.5 = 1
Waitms 250
End If
Loop
End