Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Arduino: program zawiesza się oraz nie działa pwm

kimz 16 Kwi 2017 18:43 423 8
  • #1 16 Kwi 2017 18:43
    kimz
    Poziom 12  

    Cześć
    Mam nietypowy problem ponieważ nie mam żadnych błędów przy kompilacji, scaliłem dwa osobne programy żeby używać ich na jednym uC. Jest to sterowanie taśmą rgb oraz odbieranie sygnału z sond czujników przez rf433. Pominę tutaj schemat podłączenia z tego względu że przy wgrywaniu osobno tych programów ( sterowanie rgb lub odbiór temperatury i wyświetlanie jej na lcd ) wszystko działa w 100% ok. Z tego co zauważyłem gryzą się dwie biblioteki: VirtualWire oraz IRremote
    Problem polega na tym iż PWM działa zero-jedynkowo ( 0-127 jako 0 oraz 128-255 jako 1 ) program potrafi także zaciąć się przy wyborze któregoś przycisku na pilocie.
    Z góry przepraszam za burdel w kodzie, nie spodziewałem się nigdy że komuś będę go pokazywał jednak jest czytelny i zrozumiały
    Pozdrawiam Mateusz

    Kod: c
    Zaloguj się, aby zobaczyć kod

  • #2 16 Kwi 2017 18:54
    Piotrus_999
    Poziom 39  

    kimz napisał:
    Mam nietypowy problem ponieważ nie mam żadnych błędów przy kompilacji,
    Masz bardzo typowy problem bo skompilowanie nie oznacza działania. Scalanie programów a nie ich pisanie tlrowniez typowo prowadzi do zwiechy uC. Tak że Twój problem jest nie tylko typowy, ale wręcz oczekiwany w takim przypadku.

    Kodu czytać się nie da. Jest niesformatowany

  • #3 17 Kwi 2017 19:36
    kimz
    Poziom 12  

    Jest nietypowy dla mnie, nie spotkałem się dotychczas z takim problemem więc określenie jest jak najbardziej trafne, kod w 60% jest napisany prze zemnie więc nie do końca jest scalony.
    Twoja wypowiedz totalnie nic nie wnosi do tematu a jedynie go zaśmieca więc za takie posty podziękuje i poczekam na bardziej pomocne

  • #4 17 Kwi 2017 20:37
    Piotrus_999
    Poziom 39  

    kimz napisał:
    zaśmieca więc za takie posty podziękuje i poczekam na bardziej pomocne
    To się trochę postaraj i kod umieszczaj w sposób dający się czytać - bo tokigo czegoś nikt nie będzie analizował.

  • #5 19 Kwi 2017 11:36
    dondu
    Moderator Mikrokontrolery Projektowanie

    Niestety kolega Piotrus_999 ma rację. Analizowanie kodu, który nie jest sformatowany za pomocą wcięć (tabulatorów) jest trudne i czasochłonne. Za pewne masz kod napisany prawidłowo, wklej go więc jeszcze raz.

    Jeśli masz podejrzenia, w których miejscach kodu występuje błąd wskaż je.

  • #6 19 Kwi 2017 13:19
    kimz
    Poziom 12  

    Przepraszam za ten błąd jednak wklejałem sformatowany kod. Na dodatek wczoraj go poprawiłem jednak dalej jest niesformatowany, wrzuciłem kod na wklejke:
    http://wklejto.pl/276004
    Jeśli chodzi o moje podejrzenia to raczej chodzi o konflikt bibliotek - gdy usunę cały kod (odpowiedzialny za komunikacje arduino <-> rf433 ) oprócz

    #include <VirtualWire.h>

    oraz

    vw_set_rx_pin(12);
    // Initialise the IO and ISR
    // Required for DR3100
    // vw_set_ptt_inverted(true);
    // Bits per sec
    vw_setup(2000);

    // Start the receiver PLL running
    vw_rx_start();

    Dalej jest to samo ( nie działa pwm ) a po usunięciu tych wpisów które praktycznie nie mają nic z tym wspólnego problem znika

  • #7 19 Kwi 2017 13:23
    Piotrus_999
    Poziom 39  

    Skoro nie mają, to znaczy że cuda. Przeanalizuj źródła, to wtedy dojdziesz, bo jak piszesz znasz C++. Albo jeszcze lepiej napisz sam

  • #8 19 Kwi 2017 14:53
    ditomek
    Poziom 18  

    3 sekundy googlowania.
    Efekt: virtualwire używa timera 1.
    Wniosek: zapomnij o PWM idących z tego timera.

    Jeszcze raz napisze bo to ważne: dojście do tego naprawdę zajęło mi sporo mniej niż minutę. Użyłem standardowej wersji wyszukiwarki Googla.

    <ciach>

    Moderowany przez dondu:

    Zbędne wyciąłem.
    3.1.9. Nie ironizuj i nie bądź złośliwy w stosunku do drugiej strony dyskusji. Uszanuj odmienne zdanie oraz inne opinie na forum.

Szybka odpowiedź lub zadaj pytanie
Dziękuję Ci. Ta wiadomość oczekuje na moderatora.
 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME