基于定时器的倒计时程序设计

基于定时器的倒计时程序设计

关于变量声明的问题

unsigned char //0~255
unsigned int //0 ~ (2^16)-1

模拟题中,关于Timer_1000ms的类型,大于了255,不能用unsigned char!! 这个问题编译不报错

倒计时功能的实现问题

Timer_1000ms的倒计时标志位的用法逻辑

if(++Timer_1000ms == 1000)//这段放在了定时器0中断服务函数中(1ms)
{
    Timer_1000ms = 0;//循环进行1000ms,相当于1s减去一次倒计时
    Timer_Count--;//Timer_Count为需要倒计时的时间
    if(Timer_Count == 255)Timer_Count = 0;//unsigned char类型防止超出
}

数组的用法逻辑_1

针对问题:“设置参数在 15-30-60 之间切换” 模拟题要求倒计时参数的切换

unsigned char Set_Data[3] = {15,30,60};//设置界面参数数组
unsigned char Set_Data_Index = 1;//设置参数索引值 默认为 30s

整体解题思路细节总结

解题顺序

在这里插入图片描述

先按功能从易到难,注意“复位”功能的特殊性(后面实现),细节可先忽略(黄色框内)

题目里的坑

“设置参数以1s为周期闪烁” 注意周期的实现是0~0.5s亮 0.5~1s灭

演示效果

基于定时器的倒计时程序设计

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值