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.

[AVR][C] - Nieprawidłowe działanie pętli for.

PolskiElektronikPL 21 Mar 2014 17:17 828 4
  • #1 21 Mar 2014 17:17
    PolskiElektronikPL
    Poziom 11  

    Witam,
    Mam paki problem, że zrobiłem sobie program aby migał diodą 5 razy:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Tymczasem dioda miga 3 razy. Próbowałem zmieniać postinkrementację na preinkrementację - bez zmian.

    Proszę o pomoc i z góry dziękuję :)

    0 4
  • Pomocny post
    #2 21 Mar 2014 17:21
    el2010tmp
    Poziom 25  

    PolskiElektronikPL napisał:
    for(int i=0; i<=5; ++i){

    PORTB ^= (1<<PB0);
    _delay_ms(500);


    }


    Ten kod 6 razy zmienia stan PB0 na przeciwny, czyli działa poprawnie. Co nie znaczy że zgodnie z założeniami :)

    0
  • #3 21 Mar 2014 17:25
    PolskiElektronikPL
    Poziom 11  

    Marz rację, dzięki,
    To mój poprawiony kod:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Teraz dioda miga 6 razy, może znowu popełniłem jakiś głupi błąd :)

    0
  • Pomocny post
    #4 21 Mar 2014 17:28
    el2010tmp
    Poziom 25  

    PolskiElektronikPL napisał:
    Teraz dioda miga 6 razy, może znowu popełniłem jakiś głupi błąd :)

    Zmienna int i w pętli for [0,1,2,3,4,5]==6 razy. Daj for(int i=0; i<5; i++) albo for(int i=1; i<=5; i++)

    0
  • #5 21 Mar 2014 17:48
    PolskiElektronikPL
    Poziom 11  

    Dzięki ci wielkie,
    Jestem początkujący w C, ale będę pamiętał na przyszłość.

    Dzięki :)

    0