Stranica 1 od 1

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

PostPoslato: Sre Avg 30, 2006 12:47 pm
od misha
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]

PostPoslato: Čet Avg 31, 2006 10:16 am
od npejcic
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.

PostPoslato: Pet Sep 01, 2006 3:59 pm
od misha
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?

PostPoslato: Pon Sep 04, 2006 9:28 am
od npejcic
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.....