Problem sa Interaptom na Rb0/int 16F84
18.09.2008. u 07:59 · pre 220 meseci
#1
Molim za pomoc !
Pocetnik sam u radu sa mikrkontrolerima i imam problem sa interaptom na RB0/INT pic-a 16f84a.
Svu teoriju oko ovog interapta sam savladao ali mi i dalje nije jasno zasto deo programa (dole) nikako nece da
udje u interapt rutinu i obradi eksterne impulse na pinu RB0/INT, tj. na pojavu povorke impulsa na ulazu RB0/INT nikako nece
da se setuje bit INTCON.INTF ???
Program je radjen u mikroC-u!
Program je deo programa brojaca, ali je ovo tek pocetak.
Unapred zahvalan !
//BROJAC IMPULSA NA ulazu Rb0/INT (INTERAPTI)
//INTCON.INTF - Setuje se bit ukoliko se desio interapt (Bit 1)
//INTCON.INTE - Sa "1" Omogucavamo interapt na RB0/INT pinu (Bit 4)
//OPTION_REG.INTEDG - "1" - rastuca ili "0" - opadajuca ivica ul. signala (Bit 6)
//INTCON.GIE - Dozvoljavamo sve interapte (Bit 7)
unsigned int Count, tmp; //Counter
void parametri();
void interrupt(void) {
if (INTCON.INTF) {
INTCON.INTF = 0;
Count=Count++; //Increment Count
}
}
void parametri() {
TRISA = 0x00; //PORTA is output
TRISB = 0xff; //PORTB je input
PORTA = 0b00000000;
PORTB = 0x00;
Count = 0; //Initialize Count
OPTION_REG = 0b01000000; //Interapt na opadajucoj ili rastucoj ivici 0x40
//INTEDG - 1,na rastucu ivicu ul. signala - bit 6
INTCON =0b10010000; //Omogucavamo interapt RB0/INT 0x90
//INTE - bit 4
//GIE - bit 7
INTCON.INTF = 0; //Obrisi ovaj fleg,nikad neveruj mikrokontroleru
}
void main() {
parametri();
do { //Main loop
//*************************************************************************
// INTCON.INTF = 1; Cak i ovo kada mu dodam (prisilno setujem), onako bezveze nece da udje u interapt rutinu
//*************************************************************************
tmp = Count;
} while (1); // endless loop
}
Pocetnik sam u radu sa mikrkontrolerima i imam problem sa interaptom na RB0/INT pic-a 16f84a.
Svu teoriju oko ovog interapta sam savladao ali mi i dalje nije jasno zasto deo programa (dole) nikako nece da
udje u interapt rutinu i obradi eksterne impulse na pinu RB0/INT, tj. na pojavu povorke impulsa na ulazu RB0/INT nikako nece
da se setuje bit INTCON.INTF ???
Program je radjen u mikroC-u!
Program je deo programa brojaca, ali je ovo tek pocetak.
Unapred zahvalan !
//BROJAC IMPULSA NA ulazu Rb0/INT (INTERAPTI)
//INTCON.INTF - Setuje se bit ukoliko se desio interapt (Bit 1)
//INTCON.INTE - Sa "1" Omogucavamo interapt na RB0/INT pinu (Bit 4)
//OPTION_REG.INTEDG - "1" - rastuca ili "0" - opadajuca ivica ul. signala (Bit 6)
//INTCON.GIE - Dozvoljavamo sve interapte (Bit 7)
unsigned int Count, tmp; //Counter
void parametri();
void interrupt(void) {
if (INTCON.INTF) {
INTCON.INTF = 0;
Count=Count++; //Increment Count
}
}
void parametri() {
TRISA = 0x00; //PORTA is output
TRISB = 0xff; //PORTB je input
PORTA = 0b00000000;
PORTB = 0x00;
Count = 0; //Initialize Count
OPTION_REG = 0b01000000; //Interapt na opadajucoj ili rastucoj ivici 0x40
//INTEDG - 1,na rastucu ivicu ul. signala - bit 6
INTCON =0b10010000; //Omogucavamo interapt RB0/INT 0x90
//INTE - bit 4
//GIE - bit 7
INTCON.INTF = 0; //Obrisi ovaj fleg,nikad neveruj mikrokontroleru
}
void main() {
parametri();
do { //Main loop
//*************************************************************************
// INTCON.INTF = 1; Cak i ovo kada mu dodam (prisilno setujem), onako bezveze nece da udje u interapt rutinu
//*************************************************************************
tmp = Count;
} while (1); // endless loop
}