PIC18 RB(4;7) port megszakitas bug?!?

Balázs inya at freemail.hu
Sat May 7 22:09:28 CEST 2005


Sziasztok,

Van egy kis gondom a fenti eszkoz RB port megszakitas kezelesevel. A 
programresz lent lathato. Mindegyik bementet egy 2k + 2k ellenallas oszton 
kap jelet es van rajta meg egy 1uF-os kondi is. A port 4-es es 5- os 
bemenete fix tapfeszre van kotve es a 7-es jonnek be a jelek. Szkopon 
latszanak a gyonyoru jelek, semmi zavar, a port labon merve, tehat csak ott 
van valtozas. Igy az RB_jelek -nek pont ketszer annyinak kellene lennie mint 
pin7_jelek-nek, mert ott csak a felfuto el van kezelve. Ennek ellenere az 
RB_jelek szama rendszertelenul 4-15 vagy akarmennyivel novekszik 1 pin7 
novekedesre.
Ha valaki lat ebben valami hibat vagy talalkozott mar ilyennel, akkor kerem 
ossza meg velem!

#int_rb
void rb_megszakitas() {
 byte changes;

 RBIF = 0;        // megszakitas flag torles
 changes = last_b^ port_B;        // valtozasok a porton
 last_b = port_B;

    RB_jelek += 1;

 if (bit_test(changes,4) && !bit_test(last_b,4)) {    // lefuto el
 }

 if (bit_test(changes,5) && bit_test(last_b,5)) {     // felfuto el
 }

 if ((bit_test(changes,7) && bit_test(last_b,7))) {  // felfuto el
    pin7_jelek += 1;
 }

} // RB change end 




More information about the Elektro mailing list