void delay(U16 shijian)
{
rTCFG0 &= ~0xff;
rTCFG0 |= 24; //prescaler = 24+1
rTCFG1 &= ~0xf; //mux = 1/2
rTCFG1 |=0x0;
rTCNTB0 = shijian;
//rTCMPB3 = 0;
rTCON &= ~0x1f;
rTCON |= 0x3; //启动计数
rTCON &= ~2;
while(rTCNTO3>0);
rTCON &= ~0x1;
}
void Main(void)
{
rGPFCON = 0x5555;
while(1)
{
rGPFDAT |= 0x3;
delay(1500);
rGPFDAT &= ~0x3;
delay(20000);
};
}
这个定时1us的程序一直出错,用示波器测只延时了4us,为什么?