#include "delay.h" #include "sys.h" /* //roughly delay void delay_us(u32 nus) { u32 i; u16 temp; temp = nus*SYS_CLK/15; for(i=0;iLOAD; ticks=nus*SYS_CLK; delay_osschedlock(); told=SysTick->VAL; while(1) { tnow=SysTick->VAL; if(tnow!=told) { if(tnow=ticks)break; } }; delay_osschedunlock(); } void delay_ms(u16 nms) { if(delay_osrunning&&delay_osintnesting==0) { if(nms>=fac_ms) { delay_ostimedly(nms/fac_ms); } nms%=fac_ms; } delay_us((u32)(nms*1000)); } #else void delay_us(u32 nus) { u32 ticks; u32 told,tnow,tcnt=0; u32 reload=SysTick->LOAD; ticks=nus*SYS_CLK; told=SysTick->VAL; while(1) { tnow=SysTick->VAL; if(tnow!=told) { if(tnow=ticks)break; } } } void delay_ms(u16 nms) { u32 i; for(i=0;i