Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Pitanja u vezi tutorijala | Programiranje PIC mikrokontrolera u jeziku C
#71
Osim Mikijevog izvsnog komentara oko prototipa, na tvoje prvo pitanje kako se vratiti u main:

Ako bilo gde napišeš:

Code:
while(1){ //radi telo petlje ako je uslov istina, inace idi na liniju ispod donje viticaste zagrade
  nesto_radis; //radis nesto tamo
}  //vrati se na ispitivanje uslova while petlje (gore je uslov uvek istina,dakle zauvek)
neki_kod_ispod;  //neki kod ispod, ma sta to bilo, koji se nikada nece izvrsiti

, onda ćeš to nesto_radis raditi zauvek pošto ništa ne menja uslov (1) ili citaj (uvek istina) u while petlji.

Jedini moguć način da raskineš while petlju bez obzira na ispunjenost uslova, u C je naredba break;

Ovako na primer:

Code:
while(uslov){  //radi telo petlje ako je uslov istina, inace idi na liniju ispod donje viticaste zagrade
  radis_nesto;  //radis nesto tamo
  break;          //raskini while petlju i idi na prvu liniju ispod viticaste zagrade
}                   //ne pitaj uslov posto je break raskinuo while petlju
neki_kod_ispod; //sada ce se vec ovo raditi, ma sta to bilo

Naravno, možeš u telu while petlje da promeniš njen sopstveni uslov, ako je on neka varijabla, i da ga napraviš neistinitim.
U tom slučaju će po izvršenju tela while biti raskinuta jer je uslov za njen "opstanak" neistinit, i uradiće prvu liniju ispod donje vitičaste zagrade.

Break je naredba koja raskida while, do while i for petlje bez obzira na stanje njihovih uslova, tj. nasilno raskidanje petlje.

Pozz

P.S.

Na primer nešto ovako while(1); tako bez tela znači zakucaj se tu.
Posle ovoga pomaže samo hardverski reset, a i on za kratko jer će po butovanju opet stići do te linije i u njoj zauvek raditi ništa.
Sav kod ispod toga postaje beskoristan.
Reply


Messages In This Thread
RE: Pitanja u vezi tutorijala | Programiranje PIC mikrokontrolera u jeziku C - by Macola - 09-01-2014, 04:10 AM

Forum Jump:


Users browsing this thread: 53 Guest(s)