www.elektronik.si
programator

www.elektronik.si -> Linux, unix razprave

Avtor: sirjostKraj: pescenk bliz Cerknce PrispevekObjavljeno: Čet Apr 27, 2017 9:05 pm    Naslov sporočila:  programator
----------------------------------------------------------------------------
Pozdravljeni.
V šoli programiramo z programatorjem v programu LDmicro.
Za nalaganje programov pa uporabljamo program
MikroC Pro for PIC.

Dobili smo vajo.
Ko potenciometer zavrtimo, da preide preko 900 bitov, začne ledica utripati. Ob pritisku na eno tipko ledica neha utripati.

Ali je mogoče kdo že kaj od tega delal, če mi lahko svetuje.

V programu sem že napisal, da ko preseže 900 bitov, ledica sveti vendar pa ne vem kako naj zdraven vrinem še, da bo ledica utripala.

Avtor: int47Kraj: Ljubljana PrispevekObjavljeno: Pet Apr 28, 2017 7:55 am    Naslov sporočila:  
----------------------------------------------------------------------------
OK. LED znaš prižgat. Verjetno jo znaš tudi ugasnit.

LED bo utripala, če je nekaj časa prižganma in nato nekaj časa ugasnjena.

v zanki utripanje LED:

pogoj za izhod iz zanke = 0;
zanka:
prižgeš LED.
malo_počakaš();
ugasneš LED.
malo_počakaš();
preveriš pogoj za izhod iz zanke.
povratek na zanka

zanka obesi_se:
povratek na zanka obesi se


Na ta način bo pri počasnejšem utripanju tipka precej neodzivna.
To lahko rešiš tako, da v podprogramu malo_počakaš() preverjaš pogoj za izhod iz zanke in ga v primeru izpolnjenega pogoja zaključiš predčasno.

malo_počakaš:
cakaj=10;
zanka:
res malo pocakaj (cca malo pocakaj/10)
če je pritisnjena tipka, postavi po pogoj za izhod iz zanke in zakljuci podprogram
cakaj--
če je cakaj == 0 izhod iz zanke (podprograma)
povratek na zanka


To ni edina možna rešitev.
Če naj uC razen utripanja LED počne še kaj drugega bi bilo bolje uporabiti prekinitve za utripanje LED in preverjanje tipke.

Stran 1 od 1

Powered by phpBB © 2001,2002 phpBB Group