当前位置: 首页 > news >正文

04 基于 STM32 的时钟展示程序

前言

我们经常会看到 各个场合下面有 基于数码管 的时钟程序

比如 在车站, 教室, 办公室 等等 各个场合都有 

然后 这里就是做一个 简单的 时钟程序 展示程序 

 

 

测试用例

每一秒钟更新时间, 然后 迭代更新 天, 时, 分 等等 

然后 主流程 基于 天, 时分秒 渲染数码管 


#include "utils.h"u8 emptyLedCols[8] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0};/*** main related*/
long counter = 1;long baseDay = 24;
long baseHour = 15;
long baseMinute = 30;
long baseSecond = 30;/*** reset all*/
void resetAll();u32 genDateNumber();void incrementSecond();void main() {u32 dateNumber;resetAll();while (1) {dateNumber = genDateNumber();lightTubeByInt(dateNumber);// 计算和渲染貌似挺花时间, 这里 incrementSecond 的频率调整一下if(counter % 100 == 0) {incrementSecond();}delay_ms(5);counter++;}
}void resetAll() {u8 i;printLedWord(8, emptyLedCols);BEEP = 1;for(i=0; i<8; i++) {ledCtl(i, 0);}
}u32 genDateNumber() {u32 result = 0;result = baseDay;result = result * 100;result += baseHour;result = result * 100;result += baseMinute;result = result * 100;result += baseSecond;return result;
}void incrementSecond() {baseSecond ++;if(baseSecond == 60) {baseSecond = 0;baseMinute++;if(baseMinute == 60) {baseMinute = 0;baseHour ++;if(baseHour == 24) {baseHour = 0;baseDay ++;if(baseDay == 31) {baseDay = 1;}}}}
}

 

 

展示效果

当前状态 

 

下一秒

 

下一秒

 

 

 

 

 

 

 

http://www.xdnf.cn/news/270181.html

相关文章:

  • 《算法导论(第4版)》阅读笔记:p4-p5
  • HTML与CSS实现风车旋转图形的代码技术详解
  • Webug4.0靶场通关笔记10- 第14关链接注入
  • 深度学习助力校园学生自杀预防
  • wsl2 中使用串口
  • 【信息系统项目管理师】【论文】项目背景示例
  • 66. Java 嵌套类
  • 二叉树最近公共祖先(后序遍历,回溯算法)
  • 强化学习--4.策略梯度方法(蒙特卡罗)
  • 数字信号处理学习笔记--Chapter 0 数字信号处理概述
  • Python 部分内置函数及其用法详解
  • HTML打印设置成白色,但是打印出来的是灰色的解决方案
  • mcp+llm+rag
  • 隐藏元素的多种方式
  • TFT(薄膜晶体管)和LCD(液晶显示器)区别
  • zabbix 重置登录密码
  • 【文献阅读】全球干旱地区植被突变的普遍性和驱动因素
  • 陶瓷陶器缺陷检测VOC+YOLO格式938张2类别
  • 时间交织(TIADC)的失配误差校正处理(以4片1GSPS采样率的12bitADC交织为例讲解)
  • 64常用控件_多元素控件介绍
  • Linux中进程的属性:进程优先级
  • MySQL 分库分表
  • C++ 中 virtual 的作用
  • 基于 vue-flow 实现可视化流程图
  • 第7章 【Python数据类型大爆炸】Python 基础语法和数据类型特性的实例
  • “c++11“,右值,右值引用,可变参数模板...
  • GPU集群监控系统开发实录:基于Prometheus+Grafana的算力利用率可视化方案
  • 第15章 对API的身份验证和授权
  • 论系统安全架构设计及其应用
  • 【KWDB 创作者计划】使用Docker实现KWDB数据库的快速部署与配置