prekidi u c-u

Rasprava o PIC mikrokontrolerima, PIC projekti i drugo vezano za PIC-eve...

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
pic16F877a
Posts: 2
Joined: 12-02-2009, 20:32

prekidi u c-u

Post by pic16F877a »

bila bih zahvalna kada bi neko postavio neki primjer za upotrebu prekida ali ne u asembleru nwgo u c-u
vukboban
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 212
Joined: 05-12-2008, 17:49
Location: Pancevo

Re: prekidi u c-u

Post by vukboban »

prekidi... dosta uopsteno...
imas (u zavisnosti od kontrolera) 2,3,pa cak i 7,8 izvora prekida.
neko blize objasnjenje bi dobro doslo,tajmer,eksterni,promena na pinu?
u principu,pri svakom prekidu(interaptu),prvo se setuje flag(na osnovu koga mikrokontroler,a i ti, zna sta ga je izazvalo),zatim se ulazi u rutinu za obradu prekida,tu uradis ono sto ti treba u zavisnosti od programa,po potrebi zabranis prekide dok se ta rutina izvrsava,,resetujes flag i program izlazi iz rutine za prekid t.j. vraca se tamo gde je bio pre toga

char counter;

void interrupt(){
counter ++; // increment value of counter on every interrupt
TMR0 = 96;
INTCON = 0x20; // set T0IE, clear T0IF
}

void main() {

OPTION_REG = 0x84; // assign prescaler to TMR0
TRISIO = 0; // designate GPIO as output
GPIO = 0xFF; // initialize GPIO
counter = 0; // initialize counter
TMR0 = 96; // initial TMR0 value
INTCON = 0xA0; // enable TMRO interrupt

do {
if (counter > 127) // counter in range 128..255
GPIO = 0;
else // counter in range 0..127
GPIO = 255;
} while(1);
}

evo jednog prostog primera iz mikroelektronikinog mikroc-a
Post Reply