This is the repo for software functions of the 「sparrow」eclock demo, enjoy it!
- 定时器扫描按键实现键值检测
- 长按按键,短按按键,K1实现时钟界面切换
- 主函数状态机框架搭建完成
4位共阴极数码管显示RTC实时时钟,初始值通过set_time结构体变量设置
DHT11读取温湿度,并通过串口实时显示
PWM驱动蜂鸣器并实现节拍器和音乐播放功能
最终版程序提交
- 硬件项目详细介绍地址:https://oshwhub.com/joe_e/eclock/
- 主要参考立创2023暑期夏令营官方介绍【立创电赛】基于瑞萨的桌面电子时钟设计 - 嘉立创EDA开源硬件平台 (oshwhub.com)
软件功能的设计框架由状态机搭建,每一个状态对应一种显示或者检测状态,由K1主功能按键实现状态1至状态3的不同功能状态切换,具体功能实现如下:
- 实时显示状态:当前时刻“小时”:“分钟”,例如"12:03"
- 日历参数状态
- set_state=0:表示时钟调整界面状态,共四个页面,“年”
“月 日”“小时 分钟”~“秒 星期”;通过K3,K4按键实现上下翻页; - set_state=1:表示当前第一参数位可调整,K3实现该位加1,K4实现该位减1,调整过程时数码管以1s间隔闪烁;
- set_state=2:表示当前第二参数位可调整,K3实现该位加1,K4实现该位减1,调整过程时数码管以1s间隔闪烁;
- set_state=0:表示时钟调整界面状态,共四个页面,“年”
- 长按按键K2进入由实时显示状态进入日历参数状态,再次长按更新数据并存入内部Flash,随后进入实时显示状态
- 短按按键K2实现set_state的切换,即短按K2,实现set_state->0->1->2->0
- 默认状态:数码管常亮显示"温度显示标志P+当前实时温度数值"
- 长按状态:数码管常亮显示"湿度显示标志H+当前实时湿度数值"
- 长按K2不松手由温度显示界面进入湿度界面,松手后返回默认状态
- 界面显示:"节拍器功能标志E"-"BPM值(Beat per minute,节拍数/分钟)"
- 短按按键K2启动节拍器功能,蜂鸣器以BPM值速度滴滴鸣响;再次按下K2取消节拍器功能;
- K3实现BPM值加10,K4实现BPM值减10;
- 【待实现】 触摸按键实现“快加”或者“快减”功能:在BPM值调整过程中,若首先按下K3按键加10,再次按下触摸按键实现BPM连续加1;同理若首先按下K4按键减10,再次按下触摸按键实现BPM连续减1;
- 长按按键K2启动音乐播放功能,内置音乐摘选自久石让《天空之城》