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

[atmega8[[Bascom] - Porównywanie ciągów

14 Maj 2013 15:17 939 2
  • Poziom 18  
    Witam
    Mam taką sytuację, odbieram w przerwaniu dane z RFM12 i ustawiam Flagę.
    W pętli głównej jest warunek, że jeśli wystąpi Flaga, to będą się wykonywać obliczenia.
    Odebrany ciąg zawiera pięć znaków identyfikujących nadajnik.

    Dołożyłem również warunek określający, czy ma się wykonać ta czy inna operacja, w zależności, który nadajnik przysłał dane.

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    i teraz zastanawiam się, czy to ma być w ten sposób, bo wczoraj dołożyłem ten drugi warunek ze sprawdzaniem ciągu i rano zawiesiło mi się wykonywanie innych instrukcji w programie ( reszta działa ), bo niektóre mam z warunkiem, że Flaga_rfm musi być = 0, stąd wniosek, że coś nie tak z wykonywaniem tej instrukcji z warunkiem odebrania ciągu.
    Czy nie powinno być tak:

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    lub tak

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    Czy sposób porównywania ma znaczenie ?
  • Poziom 27  
    Aby zapisać zmienną tekstową "$TEMP" potrzebujesz 5 znaków, plus jeden znak null na końcu. Czyli łącznie 6 znaków.
    A u ciebie zmienna ta jest zadeklarowana jako 5 znakowa.
  • Poziom 18  
    Zmieniłem na 6 znaków

    Ale czy tworząc ciąg z odebranych zmiennych ma być tak
    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    czy tak

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    Chyba jednak zrezygnuję z tego dodatkowego warunku
    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    Odkąd to dołożyłem, to odbiornik przestaje odbierać po kilku/kilkunastu godzinach, a ostatnie dane jakie odebrał i wyświetlił na LCD to jakieś bzdury np. wyświetla czas
    -4:67:76
    albo wilgotność 110%

    Po resecie odbiornika wszystko znowu w porządku.