Mogą. I to na wiele sposobów. Doświadczeni elektronicy od razu wskażą kilka - od prostego połączenia port-w-port począwszy.
Jednym z elementów wyposażenia mikrokontrolerów AVR, a dokładniej moich dwóch modeli ATtiny2313 i ATmega48P, jest zrealizowany sprzętowo port UART, zgodny logicznie z RS232 (jeśli chodzi o całkowitą zgodność, konieczne jest użycie układu dopasowującego napięcia - można użyć tranzystorów lub MAX232). Obsługa tego portu w BASCOMie jest banalnie prosta. Posłużmy się przykładem. Niech ATmega będzie nadajnikiem, który wysyła przez łącze szeregowe, w odstępach co ok. pół sekundy, kolejne duże litery alfabetu łacińskiego (a przy okazji każdy wysłany znak sygnalizuje zapalająca się na chwilę dioda - schematu i konstrukcji układu z poprzedniego posta nie zmieniałem); wysyłanie liter uruchamiane jest przyciskiem. ATtiny zaś, wyposażony w wyświetlacz LCD, będzie odbiornikiem, który podczas oczekiwania na znak wyświetla napis "Ready...", po odbiorze znaku wyświetla jego kod ASCII i sam znak, a na koniec transmisji, po odebraniu kodu "znaku" Escape, pokazuje przez chwilę napis "End!".
Do wysyłania znaków (pojedynczych, seryjnie) przez port szeregowy służy funkcja Print lub Printbin, do odbierania - Inkey lub Waitkey (ta druga wstrzymuje program do nadejścia nowego znaku - nie polecam). Portów sprzętowych w układach, które tutaj wykorzystałem, nie trzeba konfigurować.
Programy odbiornika i nadajnika możemy sobie przejrzeć na poniższym listingu:
Pamiętajmy o poprawnym połączeniu naszych dwóch układów mikroprocesorowych, szczególnie, gdy każdy korzysta ze swojego źródła zasilania. Musimy połączyć masy obu układów oraz - na krzyż - linie TxD i RxD (w poprzednim wpisie linkowałem karty katalogowe - tam znajdziemy opis wyprowadzeń obu mikrokontrolerów). Kolejna ważna sprawa to parametry transmisji - w zasadzie konfigurowalna jest tylko prędkość; w obu układach powinna być koniecznie ustawiona taka sama wartość. Zmiany wartości możemy dokonać na poziomie środowiska (w odpowiednim okienku - przy okazji dowiemy się, jaka będzie najodpowiedniejsza dla naszego kwarcu/częstotliwości taktowania) lub wpisać w kodzie programu.
Istnieje również możliwość zdefiniowania programowego portu szeregowego - BASCOM dostarcza w tym przypadku bardzo wygodnych narzędzi. Jak zwykle zresztą :)
Jednym z elementów wyposażenia mikrokontrolerów AVR, a dokładniej moich dwóch modeli ATtiny2313 i ATmega48P, jest zrealizowany sprzętowo port UART, zgodny logicznie z RS232 (jeśli chodzi o całkowitą zgodność, konieczne jest użycie układu dopasowującego napięcia - można użyć tranzystorów lub MAX232). Obsługa tego portu w BASCOMie jest banalnie prosta. Posłużmy się przykładem. Niech ATmega będzie nadajnikiem, który wysyła przez łącze szeregowe, w odstępach co ok. pół sekundy, kolejne duże litery alfabetu łacińskiego (a przy okazji każdy wysłany znak sygnalizuje zapalająca się na chwilę dioda - schematu i konstrukcji układu z poprzedniego posta nie zmieniałem); wysyłanie liter uruchamiane jest przyciskiem. ATtiny zaś, wyposażony w wyświetlacz LCD, będzie odbiornikiem, który podczas oczekiwania na znak wyświetla napis "Ready...", po odbiorze znaku wyświetla jego kod ASCII i sam znak, a na koniec transmisji, po odebraniu kodu "znaku" Escape, pokazuje przez chwilę napis "End!".
Do wysyłania znaków (pojedynczych, seryjnie) przez port szeregowy służy funkcja Print lub Printbin, do odbierania - Inkey lub Waitkey (ta druga wstrzymuje program do nadejścia nowego znaku - nie polecam). Portów sprzętowych w układach, które tutaj wykorzystałem, nie trzeba konfigurować.
Programy odbiornika i nadajnika możemy sobie przejrzeć na poniższym listingu:
Pamiętajmy o poprawnym połączeniu naszych dwóch układów mikroprocesorowych, szczególnie, gdy każdy korzysta ze swojego źródła zasilania. Musimy połączyć masy obu układów oraz - na krzyż - linie TxD i RxD (w poprzednim wpisie linkowałem karty katalogowe - tam znajdziemy opis wyprowadzeń obu mikrokontrolerów). Kolejna ważna sprawa to parametry transmisji - w zasadzie konfigurowalna jest tylko prędkość; w obu układach powinna być koniecznie ustawiona taka sama wartość. Zmiany wartości możemy dokonać na poziomie środowiska (w odpowiednim okienku - przy okazji dowiemy się, jaka będzie najodpowiedniejsza dla naszego kwarcu/częstotliwości taktowania) lub wpisać w kodzie programu.
Istnieje również możliwość zdefiniowania programowego portu szeregowego - BASCOM dostarcza w tym przypadku bardzo wygodnych narzędzi. Jak zwykle zresztą :)
Komentarze
Prześlij komentarz