Witam serdecznie
Mam pewną niejasność jeśli chodzi o działanie funkcji USART_Init przy inijcalizacji RS-485 z bluebooka. Program piszę na Atmedze8.
Na podstawie przykładu z bluebooka napisałem funkcję
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Po tak napisanej funkcji zauważyłem, że nie działa prawidłowo pin sterujący sygnałem DI.
W celu sprawdzenia wstawiłem sobie diodkę LED pod całkowicie nie związany z naszą obsługą RS-485 pin PC5 i obsłużyłem wejście klawisza PB0 aby sprawidzć czy poprawnie działają porty I/O.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Ku mojemu zdzieniwu nie działały poprawnie. Kiedy wykasowałem funkcję USART_Init to wszystko zaczęło działać.
Po kolejnych próbach zauważyłem, że jeżeli uaktywniam przerwania od transmisji i otrzymania danych przed ustawniem bitów RXEN i TXEN to wszystko działa:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Jeżli tylko przeniose aktywacje tych przerwań za
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
to moje testowe szybkie miganie diodą przestaje działać.
Nie wiem dlaczego tak się dzieje. Bardzo proszę o wyjaśnienie jeżeli ktoś się z czymś takim spotkał.
Z góry dzięki i pozdrawiam