本帖最后由 slzm40 于 2014-1-23 21:33 编辑
现在有个疑问,就是在主程序main(),给一个IO口赋值,在while循环里一直给值,对IO口是否造成损伤,或单片机IO口是否每次都要动作.举个例子,我现在的程序里有个判断给IO口赋值,让IO口输出电平
例:
sbit io1=P1^1;
void TOinterrup() interrupt 3//1ms中断
{
timer0_counter++;
if(timer0_counter>=1000)
{
timer0_counter=0;
if(run_flag=1)
{
runval++;
if(runval==setval)
{
run_flag=0;
}
}
}
}
main()
{
run_flag=1;
setval=100;
while(1)
{
if(run_flag)
{
if(runval=50)
{
IO1=1;
}
}
}
}
程序随便写的,将就看下
在while(1)里.runval从50跳到51中有1S的时间,而这里,while(1)里的程序早已不知执行了多少遍了.相当于IO1,即P1.1已经赋了N次值.(当然,这里我可以状态转移法让这个判断只执行一次.)我也用过在这个程序whlie里加一个50mS去执行一次.相对来讲,这个程序相当于50MS执行一次,也是可以的/
问这个对IO口有损伤不?或者带来其它的影响,如些高的执行速率.
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>