logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[ATmega8][C] - Połączenie przez bluetooth, nie reaguje

wrobel94 20 Lut 2013 20:44 1632 2
REKLAMA
  • #1 11962876
    wrobel94
    Poziom 1  
    Posty: 1
    Witam,
    buduję model pojazdu gąsienicowego sterowanego za pomocą telefonu z systemem android po przez moduł BTM222. Od dłuższego czasu próbuję uzyskać reakcję ze strony atmegi lecz bezskutecznie. Wyprowadzenia PORTC 0-3 podłączone są pod mostek h L298n. Aplikacja łączy się z modułem lecz przy wysłaniu komendy miga tylko dioda DATA przy BTM. Podejrzewam, że jest to spowodowane błędem w kodzie sterownika, także proszę o sprawdzenie niżej zamieszczonego kodu.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 11963044
    BlueDraco
    Specjalista - Mikrokontrolery
    Posty: 6479
    Pomógł: 939
    Ocena: 421
    Takie użycie przerwania UART jest bez sensu. łatwiej odbierać w pętli. Równie dobrze możesz też wrzucić całe sterowanie z pętli do obsługi przerwania UART - chyba nawet będzie zgrabniej.
    Nadawanie UART też błędne - czekasz na gotowość po wrzuceniu bajtu zamiast przed. Po co?
    To raczej nie źródła błędu, ale wypada to wyprostować.

    Może nie wystawiasz sygnału, którego wymaga ten moduł - jakiś RTS?
  • #3 12037384
    Defozo
    Poziom 17  
    Posty: 365
    Pomógł: 1
    Ocena: 22
    Po pierwsze:
    Chyba nie do końca dobrze wyliczasz UART_UBRR.
    Najpewniejszy wzór to:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Po drugie:
    Pamiętaj, że standardowa prędkość przesyłania danych w BTM-222 to 19200bps.
    Ty masz ją ustawioną w kodzie na 9600bps!
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Podaję przykładowy kod:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Nie jestem specjalistą, ale może moje amatorskie wskazówki Ci pomogą,
    Defozo
REKLAMA