2020-03-12 19:48发布
我写了时钟芯片程序显示时间,按下按键声音短促,但是按键按着按着会出现声音变长的情况,我自己觉得display函数运行时间太长的原因,我把这个display函数给屏蔽后蜂鸣器声音就不会出现声音加长的情况!请问遇到这种情况我该怎么处理?key_scanf函数是写在主函数里面,按键是机械按键,蜂鸣器是无源的
我是使用东软的HR7P275 ,工作频率是16mhz ,刷全屏时间大约1.2秒,看门狗都溢出了,我都在里面刷屏里面 ...
你这MCU太慢了,没有有办法只能把响BEEP时间控制也放在中断里了(比如定时10ms中断)
东软的这颗MCU,主频有点低但是,驱动蜂鸣器正常发声还是绰绰有余的
发声是可以,beep放在main函数里面,按键按下的时候偶尔会出现蜂鸣声音加长的情况
是的,把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个标签!
你这MCU太慢了,没有有办法
只能把响BEEP时间控制也放在中断里了(比如定时10ms中断)
发声是可以,beep放在main函数里面,按键按下的时候偶尔会出现蜂鸣声音加长的情况
这有什么问题呢,每次中断简单处理下时间到了没有而已(几条指令而已),又没让你在中断里等待BEEP响完才退出
1/16*2=0.125US
用OTP那种4T的MCU都不会出现这情况
你自己水平问题,跟单片机真没关系
一周热门 更多>