51定时器是否可以重复使用

2019-03-24 19:37发布

请教大家,我在做一个51单片机 定时关闭直流电机,定时开启直流电机的实验,我用了分别用了T0,T1两个定时器,这两个功能互相独立,是共用同一个电机,一次只能实现   一个功能,没问题,现在请问大家。那是否可以压缩成一个定时器来使用,就是无论定时开启还是定时关闭,都是只用其中一个定时器,感觉用2个定时器太浪费了?我曾经试过,没成功,谢谢~~~ 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
孤獨の快樂
1楼-- · 2019-03-24 23:58

if(type==0)

{

if(cnt==cnt_max1) 

{

  type=!type;

 /*执行程序*/

}

}

else

{

if(cnt==cnt_max2) 

 type=!type;

/*执行程序*/

}

}

小小白
2楼-- · 2019-03-25 05:51
 精彩回答 2  元偷偷看……
mianbaoyjttao
3楼-- · 2019-03-25 09:49
谢谢以上两位!!
其实我的功能是这样的,比如说打开实验板电源,T0,T1,都是为0,电机不转,先是设定时间,现在键盘设定时间5S后关闭,确定后,T0工作,电机马上转动,5,4,3,2,1,到0的时候电机关闭,只要不去操作,是一直关闭的。可以在运行的过程中重新设定定时关机和定时开机

定时开机也是一样,设定定时开机时间,比如说5S后开机,确定后,T1工作,5,4,3,2,1,0的时候电机马上开启,只要不去操作它,电机一直转动下去。可以在运行的过程中重新设定定时关机和定时开机。

这样就用了2个定时器,两位提供的参考,不太懂。。。
辛昕
4楼-- · 2019-03-25 12:17
在定时中断里设置一个 计数器,也就是一个变量,静态变量,持续计时,然后,这个计数器不同数值对应不同时间。
在不同的时间启动不同的功能,就行了。
这个能懂吧?

再理解不了,把你的程序贴上来,我给你示范一下怎么用
Li_Lei
5楼-- · 2019-03-25 13:56
用全局变量 delay1 delay2 。。。
在中断服务中:
if (delay1) delay1--;
if (delay2) delay2--;
。。。
主程序中如果delayX==0 则延时已过执行再复初值。
初值视频率和延时时间来决定。如果中断频率高则计时精确开销也大。
xu__changhua
6楼-- · 2019-03-25 17:37
一个定时器完全可以滴

一周热门 更多>