单片机如何用一个定时器设置两个定时
我想用一个定时器设置两个定时。用的if语句,但是第二个if语句因为判断条件不符合为0根本完全给跳过去了,怎么办?怎么才能让他不跳过去呢...
我想用一个定时器设置两个定时。用的if语句,但是第二个if语句因为判断条件不符合为0根本完全给跳过去了,怎么办?怎么才能让他不跳过去呢
展开
2个回答
推荐于2016-05-25
展开全部
两个定时器使用没有什么特殊设置,但是有一个经验必须明白,中断里面重新对定时器赋值的操作必须放在中断处理的头端,否则会有一个整个中断处理的时间延时。如:
void timer1()interupt3 using1
{
... //如果这里的...程序段太长,那么每次中断就慢了处理这段程序的时间
TH1=0X..
TL1=0X..
... //如果把处理程序放在这里,那么慢的是2个指令周期(重载)
}
所以时间要求特别严格的程序,一般建议使用方式2自动载入。
可以同时运行,但存在优先级问题,即如果中断同时发生,先执行优先级的。
如果有一个中断已经在执行,则其他中断发生时也不会执行。
可以 通过设置中断优先寄存器IP,使选的中断可以在其他中断还没完成时,发生二次中断。
void timer1()interupt3 using1
{
... //如果这里的...程序段太长,那么每次中断就慢了处理这段程序的时间
TH1=0X..
TL1=0X..
... //如果把处理程序放在这里,那么慢的是2个指令周期(重载)
}
所以时间要求特别严格的程序,一般建议使用方式2自动载入。
可以同时运行,但存在优先级问题,即如果中断同时发生,先执行优先级的。
如果有一个中断已经在执行,则其他中断发生时也不会执行。
可以 通过设置中断优先寄存器IP,使选的中断可以在其他中断还没完成时,发生二次中断。
迪凯特科技(北京)有限公司
2023-07-28 广告
2023-07-28 广告
MCS-51串行接口有四种工作方式,分别是:1. 方式0(8位同步移位寄存器方式),一般用于外接移位寄存器芯片扩展I/O接口。2. 方式1(10位异步收发方式),通常常用于双机通信。3. 方式2(11位异步收发方式),通常常用于多机通信。4...
点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
2012-05-09
展开全部
定一个所需要两个定时的公约数,搞定
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询