Mam problem z kompilatorem AVR GCC który ignoruje przy kompilacji część kodu tak jakby nigdy nie mógłby być on wykonany. Kod:
Program działa tak:
- wysyła do maszyny po RS232 komendę aby ta zwróciła zawartość pewnego bloku danych na wskutek czego otrzymujemy przykładowo taki blok "heksów":
02 10 31 C2 82 62 C2 82 62 C2 82 62 C2 82 62 00 00 20 00 00 54 00 00 59 00 00 20 C2 82 62 C2 82 62 00 00 20 10 32 C2 82 62 C2 82 62 C2 82 62 C2 82 62 00 00 20 00 00 37 03
interesują mnie ciągi C2 82 62. Muszę policzyć ile jest takich bloków ciągów i ile zawierają poszczególnych znaków. Załóżmy że zamienimy ciąg C2 82 62 na literę X (bez spacji) to otrzymamy:
02 10 31 XXXX 00 00 20 00 00 54 00 00 59 00 00 20 XX 00 00 20 10 32 XXXX 00 00 20 00 00 37 03
czyli mamy 3 bloki gdzie mamy odpowiednio 4znaki w pierwszym, dwa w drugim i znowu 4 w trzecim. Chciałbym uzyskać więc w kolejnych komórkach bufora buff cyfry 4, 2, 4. Dodatkowo jest trochę zabezpieczeń na wypadek jakby maszyna zdecydowała się nie odpowiedzieć (pętla na 50*2ms zwłoki) albo swtwierdzić że nie chce ze mną rozmawiać (S_NAK). Istotą problemu jest że całą ta część od "if(key == 2)" do końca tej pętli czyli do "else" nie istnieje po skompilowaniu. Proszę o pomoc z znalezieniu przyczyny tego stanu rzeczy.
Kod: C / C++
Program działa tak:
- wysyła do maszyny po RS232 komendę aby ta zwróciła zawartość pewnego bloku danych na wskutek czego otrzymujemy przykładowo taki blok "heksów":
02 10 31 C2 82 62 C2 82 62 C2 82 62 C2 82 62 00 00 20 00 00 54 00 00 59 00 00 20 C2 82 62 C2 82 62 00 00 20 10 32 C2 82 62 C2 82 62 C2 82 62 C2 82 62 00 00 20 00 00 37 03
interesują mnie ciągi C2 82 62. Muszę policzyć ile jest takich bloków ciągów i ile zawierają poszczególnych znaków. Załóżmy że zamienimy ciąg C2 82 62 na literę X (bez spacji) to otrzymamy:
02 10 31 XXXX 00 00 20 00 00 54 00 00 59 00 00 20 XX 00 00 20 10 32 XXXX 00 00 20 00 00 37 03
czyli mamy 3 bloki gdzie mamy odpowiednio 4znaki w pierwszym, dwa w drugim i znowu 4 w trzecim. Chciałbym uzyskać więc w kolejnych komórkach bufora buff cyfry 4, 2, 4. Dodatkowo jest trochę zabezpieczeń na wypadek jakby maszyna zdecydowała się nie odpowiedzieć (pętla na 50*2ms zwłoki) albo swtwierdzić że nie chce ze mną rozmawiać (S_NAK). Istotą problemu jest że całą ta część od "if(key == 2)" do końca tej pętli czyli do "else" nie istnieje po skompilowaniu. Proszę o pomoc z znalezieniu przyczyny tego stanu rzeczy.
