单片机定时器,中断的问题
3个回答
展开全部
你是初学者吧,你可以到我文库里看一本叫 “教你初学单片机”的文档,看完以后你自己就会明白了哈
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个程序你要明白几个知识点
1、这个中断函数是每1毫秒(12M晶振下)执行一次。
2、return:执行return之后,整个函数返回了,return之后的代码不在执行。
看你的代码
beep=-beep;应该是个喇叭什么的吧,只要中断函数执行,喇叭就会响。
如果L_LED等于0的时候,t会自加到150,在没有达到150之前,都会运行return,所以,这段时间是不会运行t=0;DelayMS(20);的,所以这段时间里中断美毫秒执行一次,DEEP也就每毫秒取反,输出方波,驱动喇叭
同理
L_LED等于1的时候,也是一样的原理
当达到条件运行DelayMS(20);的时候,程序中断会再这里空耗20毫秒,这20毫秒时间里,DEEP没有输出方波,喇叭就不响了。
应该看懂了吧,好好想想,想不通再联系我
1、这个中断函数是每1毫秒(12M晶振下)执行一次。
2、return:执行return之后,整个函数返回了,return之后的代码不在执行。
看你的代码
beep=-beep;应该是个喇叭什么的吧,只要中断函数执行,喇叭就会响。
如果L_LED等于0的时候,t会自加到150,在没有达到150之前,都会运行return,所以,这段时间是不会运行t=0;DelayMS(20);的,所以这段时间里中断美毫秒执行一次,DEEP也就每毫秒取反,输出方波,驱动喇叭
同理
L_LED等于1的时候,也是一样的原理
当达到条件运行DelayMS(20);的时候,程序中断会再这里空耗20毫秒,这20毫秒时间里,DEEP没有输出方波,喇叭就不响了。
应该看懂了吧,好好想想,想不通再联系我
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询