[an error occurred while processing this directive]
|
void isr() {
#asm
//store current state of processor
MOVWF save_w
SWAPF status, W
MOVWF save_status
#endasm
// code for isr
cur = pb;
if ((!cur.step0) && (last.step0)) {
if (cur.dir0) {
pos0++;
} else {
pos0--;
}
steps.step01 = 1;
// move0;
steps.step0 = 1;
}
if ((!cur.step1) && (last.step1)) {
if (cur.dir1) {
pos1++;
} else {
pos1--;
}
steps.step01 = 1;
// move1;
steps.step1 = 1;
}
if (steps.step01) {
steps.step01 = 0;
move01;
}
if ((!cur.step2) && (last.step2)) {
if (cur.dir2) {
pos2++;
} else {
pos2--;
}
// move2;
steps.step23 = 1;
steps.step2 = 1;
}
if ((!cur.step3) && (last.step3)) {
if (cur.dir3) {
pos3++;
} else {
pos3--;
}
// move3;
steps.step23 = 1;
steps.step3 = 1;
}
if (steps.step23) {
steps.step23 = 0;
move23;
}
last = cur;
#asm
// restore processor and return from interrupt
BCF rbie
SWAPF save_status, W
MOVWF status
SWAPF save_w, F
SWAPF save_w, W
#endasm
E-mail: info@telesys.ru