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