short N1;
N1=100; // initialise once the variable , to be reconized by compiler
// tempo de 500,0µS
// formula : = 0,25+0,25 +(N1*(16*0,25+0,5+0,25))-0,25+(4*0,25)
// Load counter N1 Loops times ( 16 Nop + Decrement Counter + Branch loop) - Branch (skiped )+ final adjust by 4 nop.
asm
{
MOVLW 105 ;
MOVWF _N1; // 8 bit counter
ici:
nop ; //1
nop ;
nop ;
nop ;
nop ;
nop ;
nop ;
nop ;
nop ;
nop ; //10
nop ;
nop ;
nop ;
nop ;
nop ;
nop ; //16
decfsz _N1 ,F ; //decr counter, skip over next instruction if equal to zero
bra ici ;
nop;
nop;
nop;
nop; // add 4x0.25=1µS to round tempo pile poil to 500µS
}
asm nop ; // external nop final used as Break point to measure exact cycles and times . ...gives 500.0µS