Brojac impulsa sa PIC16F84 i prikazom na 4 7-seg.displ.

U ovom delu korisnici mogu postavljati pitanja vezana za Hardver uopšte

Brojac impulsa sa PIC16F84 i prikazom na 4 7-seg.displ.

Postod misha » Sre Avg 30, 2006 12:47 pm

Opis u naslovu govori dosta. Mada je primena poprilicno besmislena, ali...
Meni je ovo pomocni eksperiment za prelaz na veci PIC.
Avaj, koristio sam Microchip-ov Aplication Note AN557,deo-Multipleksing four 7-segment led display, pa sam ga modifikovao. Inace, kako se ne koristi dp-tacka, ulaz RB7 sam koristio za detekciju interapta.
Koristeci "originalnu"-verijantu-modifikovanu za 16f84, sve radi ok.
Ali sa interaptom imam problema.
Da li je bolje koristiti RB4 za interapt? Posto sam primetio da se koristi za povecanje TMRO-a, a meni TMRO treba za isvezavanje displeja? Ili moze da sluzi samo za detekciju interapta, pa se u rutini obradjuje...
Probao sam svasta, ali ne ide.
Inace pokusao sam da sa int-rutine iskoristim skok na deo DoIncTime koji inace sluzi za povecanje.
Nije mi bas najjasniji rad onog dela za prikazivanje na 4 cifre. Ali recunam, ako radi sa obicnim brojanjem, trebalo bi i kod mene.
Da li im veze sto se iz tabele vuku vrednosti za portB,a ja koristim jedan njegov pin?Ima li tu nekog konflikta?[/code]
misha
 
Postovi: 12
Pridružio se: Pet Avg 11, 2006 8:14 am
Lokacija: Despotovac,Nish,Mladenovac

Postod npejcic » Čet Avg 31, 2006 10:16 am

Ovako, nije moguce koristiti bilo koji pin kao ulaz eksternog interapta. Za to je namenjen iskljucivo RB0. E sada, ti si korisito RB7 koji ima u stvari "interrupt on change" mogucnost. Ja licno nisam nikada bio zadovoljan ovim interaptom, jer je sporiji i nezgodniji za podesavanje. Znaci ako zelis da imas brojanje impulsa, upotrebom interapta, moja preporuka je da se koristi INT0 odnosno RB0.

Princip rada interapta je sledeci, kada se javi prelazna ivica (na INT0 pinu) doci ce do prekida izvrsavanja glavnog programa, i prelazi se na izvrsenje prekidne rutine. U njoj je potrebno da smestis rutine kojima se obradjuju recimo brojanje impulsa i slicno. I zatim se nastavlja sa glavnim programom. Prednost interapta je da se izvrsava odmah po desavanju interapt signala, cime se postize brz odziv. Ovo je ukratko.
Nebojša Pejčić
ePraktikum workgroup
npejcic
Site Admin
 
Postovi: 129
Pridružio se: Čet Sep 23, 2004 3:27 pm
Lokacija: Nis

Postod misha » Pet Sep 01, 2006 3:59 pm

Odlicno!
Savet je bio koristan-brojac proradio. Kako dobar osecaj. :D
Gledajuci data sheet PIC16F877-a vidim da nema dodatinih eksternih interapt ulaza? Da li to ogranicava primenu ovog PICa, za jos neki brojacki ulaz ili postoji dodatni fazon?
misha
 
Postovi: 12
Pridružio se: Pet Avg 11, 2006 8:14 am
Lokacija: Despotovac,Nish,Mladenovac

Postod npejcic » Pon Sep 04, 2006 9:28 am

Da, to je jedini EXTINT pin kod PIC16F serije. Ovo je definitivno nedostatak, a jedina mogucnost da se prosiri broj interapt ulaza je upotreba jednog ILI logickog kola na koje se vezuju svi ulazni signali a njegov izlaz se vodi na EXTINT PIC-a. Svaki od signala pojedinacno se vodi na standardne IO pinove. Kada se desi interapt, prekidan rutina ce proveriti koji od signala (citanjem IO pinova) je zapravo okinuo interat i na taj nacin imamo prosirenje EXTINT ulaza.

Eto, ovo je jedna od ideja. I projektanti iz Microchipa su uvideli da je ovo nedostatak, pa vec PIC18 serija ima vise EXTINT ulaza, dok je kod dsPIC serije ovo u potpunosti ispravljeno.....
Nebojša Pejčić
ePraktikum workgroup
npejcic
Site Admin
 
Postovi: 129
Pridružio se: Čet Sep 23, 2004 3:27 pm
Lokacija: Nis


Povratak na Hardware

Ko je OnLine

Korisnici koji su trenutno na forumu: Nema registrovanih korisnika i 2 gostiju

cron