Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Pitanja u vezi tutorijala | Programiranje PIC mikrokontrolera u jeziku C
#36
<blockquote class="ipsBlockquote" data-author="enaB" data-cid="21392" data-time="1393242254">
<div>
<p>&nbsp;</p>
<p>Druže Macola, jedno pitanje&nbsp; Smile</p>
<p>&nbsp;</p>
<p>Ovakav način čekanja uzlazne tranzicije sa switch izgleda pomalo komplikovan, ali pretpostavljam da nije slučajno, pa se pitam da li je tako efikasnije ili zbog nečega drugog daje bolje rezultate nego kad bi se radilo recimo ovako, što na prvi pogled izgleda kraće</p>
<pre class="_prettyXprint">


unsigned char preth=1;

//...

if(output_pinx &amp;&amp; !preth) {

//uradi nesto

}
preth=output_pinx;</pre>
</div>
</blockquote>
<p>Skoro da nema razlike drugar. Oba koda će konzumirati sličan broj instrukcija posle kompajliranja, ako posmatramo samo saznavanje te jedne tranzicije.</p>
<p>&nbsp;</p>
<p>Ovo što si napisao izgleda kraće i elegantnije, dok ono sa switch obezbeđuje eksterni monitoring događaja praćenjem stanja varijable seq.</p>
<p>Switch je možda lakši za višestruki copy-paste, kada ima dosta toga. posle se samo izmene brojevi i untrašnjost.</p>
<p>&nbsp;</p>
<p>Kada se posmatra samo dva moguća događaja, onda switch nema nikakvih prednosti, ali ako je više od dva događaja, tri ili još više, kao na pimer:</p>
<p>&nbsp;</p>
<p>-da li ćekamo jednu tranziciju?</p>
<p>-da li čekamo drugu tranziciju?</p>
<p>-da li se događa izvršenje potrebnog?</p>
<p>&nbsp;</p>
<p>Tada switch dobija prednost lakog eksternog monitorisanja, od strane nekog drugog procesa, i nekog trećeg odlučivanja na osnovu njegovog trenutnog stanja, posmatranjem njegove varijable koja menja brojnu vrednost.</p>
<p>&nbsp;</p>
<p>Sve to veoma zavisi od konkretnog zahteva.</p>
<p>&nbsp;</p>
<p>Dlakovic je postavio nedovoljno precizan zahtev, pa sam napisao samo neki od mogućih primera (može to na još koji način).</p>
<p>&nbsp;</p>
<p>Prava pitanja, od kojih zavisi način, bi bila:</p>
<p>&nbsp;</p>
<p>-da li je potrebna samo prva uzlazna tranzicija?</p>
<p>-da li&nbsp; se posmatra svaka uzlazna?</p>
<p>-u kom vremenskom okviru se mora saznati događaj?</p>
<p>-šta treba uraditi posle detekcije?</p>
<p>-da li se za vreme izvršavanja potrebnog sme propustiti neka od sledećih tranzicija?</p>
<p>&nbsp;</p>
<p>-itd itd. bla bla....</p>
<p>&nbsp;</p>
<p>Šta je konačno efikasnije?&nbsp;</p>
<p>&nbsp;</p>
<p>-Što se pisanja tiče, ono gde se manje piše (bolji način kada nema frke sa procesorskim vremenom).</p>
<p>-Što se vremena izvršenja tiče, ono što će posle kompajliranja imati manje asm instrukcija (bolji način kada je frka sa vremenom, a ružniji za pisanje).</p>
<p>&nbsp;</p>
<p>Pozz</p>
Reply


Messages In This Thread
Pitanja u vezi tutorijala | Programiranje PIC mikrokontrolera u jeziku C - by Macola - 02-24-2014, 01:42 PM

Forum Jump:


Users browsing this thread: 30 Guest(s)