Skocz do zawartości

[C] pętla for


Pomocna odpowiedź

Napisano

Panowie proszę o wyjaśnienie działania pętli for z przykładu zadaniem programu jest wyświetlenie cyfr od 00 do 99.:

w jakiej kolejności wykonują się poszczególne pętle, która jako pierwsza i jak długo, potem która druga i trzecia.

Z góry dziękuję!

..........

for (;😉

{

for (i=0;i<=9;i++)

for (k=0;k<=9;k++)

{

for (m=1;m<=10;m++)

{

PORTC=0x01;

PORTB=LED[k];

_delay-ms(10);

PORTC=0x02;

PORTB=LED;

_delay_ms(10);

}

}

}

Najpierw wskakuje do pierwszej pętli (i), potem do drugiej (k) i potem ostatnia (m) leci tak długo, jak m<=10, potem k się inkrementuje i znowu leci m, i tak w kółko aż do k<=9, i potem inkrementuje się i i znowu k, m<=10 itd. Jak porobisz sobie wcięcia w kodzie, tak, żeby każda kolejna pętla była wysunięta trochę, lepiej sobie to uzmysłowisz 😉

Wow, to chyba najbardziej zagmatwany opis obsługi przycisku jaki czytałem.

Spróbujmy prościej:

- makra bit_is_set i bit_is_clear działają tak samo, niezależnie od sposobu podłączenia zewnętrznych peryferiów. Co więcej, bit_is_set = !bit_is_clear - makra są swoją wzajemną negacją.

- na rys.1 jeden z rezystorów jest zbędny. Z kolei podłączanie LEDa do dwóch pinów jest bez sensu, bo marnujesz jeden pin.

- na rys.2 jest ok, jeśli będzie włączony wewnętrzny pull-up na PD0

- na obu rysunkach brakuje rezystorów zabezpieczających do LEDa

  • 4 tygodnie później...

Kolego hawat twój komentarz nic nie wniósł do postu!

Forum jest po to aby sobie pomagać w problemach dotyczących robotyki a nie opisywać problemy jakie masz z trawieniem.

Kolego hawat twój komentarz nic nie wniósł do postu!

Błąd. Wniósł.

Nie trzymani się pewnych zasad - choć by właśnie odpowiedniego formatowania kodu - od początku ma niestety przykre konsekwencje potem.

Forum jest po to aby sobie pomagać w problemach dotyczących robotyki a nie opisywać problemy jakie masz z trawieniem.

Tia.

Flame WAR!

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...