430中for语句一个循环的时间是多久

[复制链接]
 楼主| someontime 发表于 2015-1-31 21:01 | 显示全部楼层 |阅读模式
贴一下代码
#pragma vector=PORT1_VECTOR
__interrupt void Port_1 (void)
{
  for(p=40960;p>0;p--)//红灯常亮
    P2OUT=0x6F;
  P1IFG=0X00;
}
意思就是按一下按键开始倒数10秒,然后一个LED亮10秒 MCLK已选择32.768K  实际烧写到板子上无论怎么更换P的值 都是12秒左右 我考虑可能是机器时间并不是我所想的主时钟时间,求大神解答!
 楼主| someontime 发表于 2015-1-31 21:01 | 显示全部楼层
是主时钟的时间吗?
mmbs 发表于 2015-2-2 23:51 | 显示全部楼层
时钟配置了吗
vivilzb1985 发表于 2015-2-3 23:07 | 显示全部楼层
还是看下你的主时钟的吧,,好好检查下的。
vivilzb1985 发表于 2015-2-3 23:08 | 显示全部楼层
不行的话先把你的MCLK信号的输出用示波器的看下的,看到底是多少的吧。
zhijun1988 发表于 2015-2-4 08:38 | 显示全部楼层
哇卡,兄弟,你怎么能在中断函数中延时。。。
风清扬mxz 发表于 2015-2-5 10:16 | 显示全部楼层
第一:正如楼上所说,不能在中断函数里面延时
  第二:如果你要在中断函数里面延时,此处是不是应该加分号    for(p=40960;p>0;p--)//红灯常亮
middle1102 发表于 2015-2-5 15:07 | 显示全部楼层
兄弟,我估计P的值应该是被编译器优化了。你在定义P变量的前面加上volatile试一下,应该是可以的。
firstblood 发表于 2015-2-5 22:33 | 显示全部楼层
这个是需要考虑主频时钟的吧。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

63

主题

982

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部