按键控制数码管秒表停止程序

按键控制数码管秒表停止程序,第1张

要逗山实现按键控制数码管秒表停止程序,需要涉及到按键检测、定时器中断、数码管显示等多个方面。其中,按键检测需要通过输入捕枯指指获功能实现;定时器中断可选择采用中断计数器、定时器比较匹配或者定时器溢出方式实现;数码管显示需要涉及到数据转换、位选、位平衡及后置驱动等方面。当用户按下没配停止按钮时,需要将计数器停止并将当前计时数码纪录下来,以便下次继续计时。同时,还需要注意防止按键抖动和误触发,增加程序的可靠性和稳定性。 在具体实现过程中,还需要关注低功耗优化、实时性、代码可维护性、易扩展性等方面。通过逐步完善和测试,可实现一个可靠稳定的按键控制数码管秒表停止程序。同时,开发者还可以结合其他功能,如数据存储、多任务切换等,实现更为复杂的实用应用。

我有一个大问题。我不知道如何用按钮停止计时器并用另一个按钮重新启动计时器。陵掘

这是我到目前为止的代码:

此代码是启动计时器的按钮的中断处理程序。我认为通过仔汪乱启用定时器是可能的,到目前为止它是有效的。

void EXTI0_1_IRQHandler(void)

{

if ((EXTI->PR &EXTI_PR_PR1) == EXTI_PR_PR1) /* Check line 1 has triggered the IT */

{

EXTI->PR = EXTI_PR_PR1/* Clear the pending bit */

NVIC_EnableIRQ(TIM7_IRQn)

}

}

此代码是停止计时器的按钮的中断处理程序。这段代码不起作用,计时器一直亮着。

void EXTI4_15_IRQHandler(void)

{

if ((EXTI->PR &EXTI_PR_PR4) == EXTI_PR_PR4) /* Check line 1 has triggered the IT */

{

EXTI->PR = EXTI_PR_PR4/* Clear the pending bit */

NVIC_DisableIRQ(TIM7_IRQn)

}

}

有没有人有一些提示或知道它必须是念档怎样的?

最佳答案

我认为“NVIC_DisableIRQ(TIM7_IRQn)”只需禁用计时器的中断但不停止计时器。

您可能需要:“TIM_Cmd(TIM7, DISABLE)”而不是“NVIC_DisableIRQ(TIM7_IRQn)”

停表的使用方法如下:

1、停表一般有两个按钮:中间按钮和侧边按钮。它的使用方法是:按一下侧边按钮,停表开始计时;再按一下侧边按钮,暂停计时;如果按了中间按钮的话,则停表指针回到s。

2、停表的小圈代表分钟min,大圈代表的是秒s。同时每个圆圈都有两个测量范围:小圈缓哪:从min—15min;大圈:从s—3s,或者是3s—6s。

3、小圈的两个刻度中间被涂成了两种颜色:白色和红色。当指针指在白色区域,代表小于3s,这个时候大圈的测量范围在s—3s;当指针指在红色区域,代表大于3s,这个时候大圈的测量范围在3s—6s。

4、在停表读数的时候,就要遵循一定的原则,唤盯即:先看小圈,再看大圈;小圈在白色,大圈扰链码读s—3s;小圈在红色,大圈读3s—6s。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12358791.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存