Witam. Parę dni temu wykonałem projekt na studia - samochód sterowany bluetooth. Użyłem w tym celu avr - atmega8 w samochodzie i kontrolerze oraz dwóch modułów bluetooth btm222. Oba moduły są sparowane za pomocą rs232 (podpięte wcześniej pod komputer) oraz mają wyłączony tryb widoczności. Po załączeniu kontrolera i samochodu moduły łączą się ze sobą w pełni poprawnie i całość działa nienagannie. Powstaje jednak pewien 'kosmetyczny' problem, mianowicie w pilocie zamontowałem diodę, która ma sygnalizować połączenie między dwoma modułami. Wiem, że gdy btm222 połączy się z urządzeniem to wysyła przez swój TX komunikat "CONNECT '0012-6F-09B70B'" (oczywiście to tylko przykładowy adres) w razie przerwania połączenia odpowiednio DISCONNECT. Problem w tym, że moja atmega8 nie chce odebrać tego komunikatu. Ustawiłem przerwanie z wektorem od Rx z USART i nie jest ono nawet wywoływane. Wlutowałem 'nasłuch' pod bluetooth żeby sprawdzić czy faktycznie przesyła te informacje i wszystko jest tip-top (btm222 przesyła CONNECT i DISCONNECT ale bez efektu od avr). Załączam schemat ideowy pilota oraz kod w C do tej atmegi na pokładzie pilota.
Kod nie jest 100% release ponieważ w przerwaniu dla wektora rx dałem tylko włączenie diody bez rozpoznawania czy to CONNECT czy DISCONNECT, lecz jest to zabieg specjalny (z rozpoznawaniem już próbowałem) ponieważ gdyby przerwanie zostało wywołane to mój problem automatycznie znalazłby rozwiązanie.
Kod nie jest 100% release ponieważ w przerwaniu dla wektora rx dałem tylko włączenie diody bez rozpoznawania czy to CONNECT czy DISCONNECT, lecz jest to zabieg specjalny (z rozpoznawaniem już próbowałem) ponieważ gdyby przerwanie zostało wywołane to mój problem automatycznie znalazłby rozwiązanie.
Kod: C / C++