|
CE驱动程序里跟某外部设备通信,需用到微秒级延时。现在实验用简单的程序循环方式来实现中间的延时:
V_pIoPregs->rGPBDAT &= ~(1<<1); //GPB1 set 1
Delay1us(4); //delay 4 us
V_pIoPregs->rGPBDAT |= (1<<1); //GPB1 set 0
Delay1us(4);
V_pIoPregs->rGPBDAT &= ~(1<<1);
但是通过示波器测得:两次4us的延时不相等,并且在执行这段代码时我关了中断,什么原因造成的延时不准?另外,驱动程序里用到微秒级延时应该用什么方法实现?
谢谢不吝赐教!
|
|