大家分析得有道理, 不过楼上的指令计算太极端了.
应该说大部分指令都是单周期完成的.
另外中断服务进入的时间也要 12 个周期, 还有退出时间呢, 这些都是基本的时间消耗.
由于 static __IO uint32_t TimingDelay;
中断服务里
if (TimingDelay !=0) TimingDelay--; 的效率并不高.
相反, 如果写成:
uint32_t tmr = TimingDelay;
if (tmr !=0) TimingDelay = --tmr;
会少一次内存装载, 效率高一点
|