2020-03-12 19:48发布
我写了时钟芯片程序显示时间,按下按键声音短促,但是按键按着按着会出现声音变长的情况,我自己觉得display函数运行时间太长的原因,我把这个display函数给屏蔽后蜂鸣器声音就不会出现声音加长的情况!请问遇到这种情况我该怎么处理?key_scanf函数是写在主函数里面,按键是机械按键,蜂鸣器是无源的
是的,把beep放在中断里面就不会出现蜂鸣声音变长的情况!但是我一直觉得中断函数要少执行指令,快速出栈 ...
这有什么问题呢,每次中断简单处理下时间到了没有而已(几条指令而已),又没让你在中断里等待BEEP响完才退出
u8 ucBeepTime; void ISR_10ms(void) { if (ucBeepTime) { if (--ucBeepTime == 0) { BEEP_OFF(); } } } void TestBeep(void) { if (KEY1) { BEEP_ON(); ucBeepTime = 100; } }
最多设置5个标签!
这有什么问题呢,每次中断简单处理下时间到了没有而已(几条指令而已),又没让你在中断里等待BEEP响完才退出
一周热门 更多>