Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Bluetooth - odbieranie ciągu znaków [C]

aplov 16 Mar 2016 11:29 561 2
  • #1 16 Mar 2016 11:29
    aplov
    Poziom 6  

    Witam,

    Mam problem z ustawieniem flagi podczas zakończenia odbierania ciągu znaku.

    Program pisany pod atmege 8.
    UART inicjalizuje w następujący sposób:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Kod przerwania podczas odbioru znaku:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Przerwanie wydaje mi się być prawidłowe, ponieważ gdy chce wypisać zawartość
    bufora bez sprawdzania gotowości buforu do terminala, program w pętli odsyła mi to co zostało odebrane(prawidłowo)

    Wysyłam to co przyszło w następujący sposób:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    jeśli warunek " if(bufor_ready) " jest to nic nie jest odsyłane, a jeśli go nie ma odsyła w kółko. Stąd wnioskuje, że program nie dostał informacji o końcu ciągu wiec nie ustawia flagi.

    I tu problem jest kolejny, podczas odsyłania bufora chcę go "wyczyścić" zaznaczając koniec bufora w 1 elemencie ciągu.
    Niestety terminal wciąż wysyła ciągle to samo.

    0 2
  • Pomocny post
    #2 16 Mar 2016 11:46
    2675900
    Użytkownik usunął konto  
  • #3 16 Mar 2016 11:59
    aplov
    Poziom 6  

    Piotrus_999 napisał:
    srób jeszcze warunek na sprawdzanie czy nie wyjezdzasz poza bufor. Nie widzimy funkcji send. Jestes pewien ze dostajesz znak '\n'?


    Okazało się, że jednak nie dostaje. Problem jest rozwiązany wtedy gdy wysyłam "[<text>]\n".

    Czyszczenie buforu też zadziałało używając:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Wszystko już działa poprawnie :), dziękuje za pomoc.

    0