2、定时器有自己的时钟尘雀携,打开定时器后,一边顺序执行主程序的语句时,一边定时器在计时。当计到设定的值后,需要产生派伏中断,然后暂停主程序语句,转到中断程序中执行的命令。执行完命令后返回到主程序的顺序语句中。然后知道下一次中断来临,再次产生中断。
3、要让其能产生中断,就必须开中断。这就像一个控制开关,不把开关打开,灯怎么会亮。
1.如果子绝薯函数运行的时间比定时中断的时间间隔长,而且放定时器里的话,就会出现子函数没运行完就中断了,然后重头开始运行,这样程序就乱了,解决办法就是把它合理拆分到主函数里,就不会出乱,因为中断并帆者时单片机会自己把主函数里那一刻运行到的地方记住(放堆栈),等中轿悄断里的函数在下一次中断来之前运行完后,再跳回主函数里那一刻的地方继续运行。2.如果子函数运行的时间比定时中断的时间间隔短,放定时器里就一般不会有什么问题,和放主函数里是没什么区别的。
你可以在蜂鸣器子程序中的while(1)内加一个按键扫描程序,如果扫描到撤警键可以跳出这个while(1)死循环信团悉,可以用go to函数(出错的可能性要大一些,但一般也没事)。或者你把while(1)改成while(key)key为一个变量,外界可以将key置1(调用蜂鸣器),当蜂鸣器内部扫描到撤警键后将滑乎key置0,这样或侍也可以跳出这个循环。要不你就把程序直接发出来,帮你 改一下欢迎分享,转载请注明来源:内存溢出
评论列表(0条)