现在做一个项目,用DSPIC30F5013和PIC24EP256GU814。其中一项要求,根据上位机设置,顺序打开64个模块。
间隔从1US到10MS。领导建议我从1US到100US用延时做,从100US到10MS用定时做。
可是用C做延时不太准,写一个延时带参数的子程序,从1US到100US都比较准很困难。
我想不出好办法来。甚至想到一个巨笨的办法,用宏定义
#define DELAY1 asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop")
#define DEL_1US DELAY1;DELAY1;DELAY1;DELAY1
100个宏定义,分别定义从1US到100US。
然后定义100函数,分别完成从1US到100US顺序打开64个模块。
反正PIC24EP256GU814存储空间大,有280K。
感觉这个办法也太笨了。
请高手指教更好的办法,谢谢!
|