|
行了!谢谢!IAR的中断定义够怪的!
同一个程序,软件廷时,LED闪烁的速度竟然不一样?
程序代码:
Raisonance 到0x814A(60ms)
IAR 到0x81BD(108ms)
COSMIC 到0x81CE(46ms)
程序设计的定时间是:50ms,只有OCSMIC比较接近!晕!
void delay_ms(unsigned int timer_xs)
{
unsigned char tmp0, tmp1;
for (; timer_xs > 0; timer_xs--)
{
//1010us+(1+1+2)*1/4=1011us*timer_xs
for (tmp1 = 10; tmp1 > 0; tmp1--)
{
//100us+(1+1+2)*1/4=101us*10=1010us
for (tmp0 = 40; tmp0 > 0; tmp0--) //减,比较,跳转
{
//1+1+2+6=10*1/4=2.5us*40=100us
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
}
}
}
} |
|