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

[Atmega164] [C] - wywołanie funkcji w w pętli głównej

svensonie 03 Sie 2012 16:34 1313 4
REKLAMA
  • #1 11172427
    svensonie
    Poziom 11  
    Mój problem polega na tym, że chcę aby dość kluczowa część programu wykonywała się w głównej pętli programu. Niestety nie udaje mi się to, chociaż jak zaimplementuje to przed petlą to działa to bez zarzutu tylko niestety jednorazowo

    program wykonuje się poza pętlą:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod





    program wykonuje się w pętli:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod



    Dodam tylko, że program wysyła komendy do modułu BT. W tym momencie nie wiem czy problem jest po stronie modułu (chociaż wydaje mi się, że akurat dla niego powinno to być wszystko jedno) czy źle wykorzystuje nieskończoną pętlę (może jakiś niuans mi umknął). Jeśli ktoś będzie w stanie coś mi doradzić, będę wdzięczny.
    Pozdrawiam
  • REKLAMA
  • #2 11172471
    emk
    Poziom 13  
    Czy kod w pętli wykonuje się chociaż jeden raz?
    Proponuję abyś wrzucił większą część kodu (co najmniej z main() ).
  • REKLAMA
  • #3 11172805
    mirekk36
    Poziom 42  
    Być może kod zawiesza ci się na ostatniej funkcji i dlatego masz taki efekt.

    bo co może być złego w takim użyciu pętli

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    co najwyżej to że nie dajesz żadnych wcięć i znaczników [ syntax = c ] na forum żeby go lepiej było widać

    więc pętlę robisz OK ;)
  • REKLAMA
  • #4 11173812
    svensonie
    Poziom 11  
    Pętla nie wywołuje się ani razu. Jeśli chodzi o reszte kodu z maina to wydaje mi się, że nie ma tam nic ciekawego (głównie konfiguracja TWI i UARTa). Jeśli chodzi o bibliotekę, z której są te funkcja to mam ją od producenta i jest dość rozległa i sam jej do końca nie ogarniam, także chyba bez sensu byłoby ją zamieszczać tutaj na forum. Ale może jakieś wskazówki, czego miałbym szukać w definicjach tych funkcji?
    Ogólnie sprawa jest dziwna bo chcę żeby program wysyłał komendy, które mają skonfigurować, włączyć i wyłączyć moduł BT. Jak zrobię to poza pętlą (kopiując odpowiednie linie kodu) to wszystko jeździ ale jak zapętle to w pętli to już nie bardzo. Dodam tylko, że takt zegara jest ustawiony na 2MHz jakby to miało jakieś znaczenie (choć wątpie)

    PS. dzięki mirekk36 za wskazówkę :)
  • #5 11173953
    mirekk36
    Poziom 42  
    No ale zobacz - skoro piszesz że przed pętlą się wykonuje to jak może się w pętli przynajmniej raz nie wykonać ??? to po prostu niemożliwe .... A gdybyś miał wątpliwości do pętli while(1) to spróbuj sobie z pętlą:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
REKLAMA