Evo šta mi treba:
Imamo sledeći kod u C30:
(ispitujemo stanje direction ulaza kroz capture interapt)
(interapt nastaje i na ulaznoj i na silaznoj ivici)
// handled on every state change
void __attribute__((__no_auto_psv__, __interrupt__)) _IC2Interrupt(void)
{
IFS0bits.IC2IF = 0; // clear IF
checkDir();
}
void checkDir(void)
{
if(DIR)
CLKCNT = 1;
else
CLKCNT = -1;
}
******
Hteo bi izbeći pozivanje potprograma checkDir iz interapta, odnosno direktno
posle brisanja zastavice interapta, umetnuti BLOK u asembleru u koji bi ispitao
stanje Direction ulaza u PIC koji je izazvao interapt, ali bez upotrebe IF-ELSE
nego direktno u ASM - zbog brzine .
Kako bi trebalo napisati ASM blok umesto IF-ELSE ?
Imamo sledeći kod u C30:
(ispitujemo stanje direction ulaza kroz capture interapt)
(interapt nastaje i na ulaznoj i na silaznoj ivici)
// handled on every state change
void __attribute__((__no_auto_psv__, __interrupt__)) _IC2Interrupt(void)
{
IFS0bits.IC2IF = 0; // clear IF
checkDir();
}
void checkDir(void)
{
if(DIR)
CLKCNT = 1;
else
CLKCNT = -1;
}
******
Hteo bi izbeći pozivanje potprograma checkDir iz interapta, odnosno direktno
posle brisanja zastavice interapta, umetnuti BLOK u asembleru u koji bi ispitao
stanje Direction ulaza u PIC koji je izazvao interapt, ali bez upotrebe IF-ELSE
nego direktno u ASM - zbog brzine .
Kako bi trebalo napisati ASM blok umesto IF-ELSE ?