[活动专区] 【AT-START-F423测评】7.ERTC电子时钟

[复制链接]
1914|0
 楼主| yuyy1989 发表于 2023-10-29 13:25 | 显示全部楼层 |阅读模式
本帖最后由 yuyy1989 于 2023-10-29 18:50 编辑

#申请原创# @21小跑堂  

ERTC是AT32F423的实时时钟,支持2组闹钟支持时间戳,时钟源可从LEXT、 LICK、分频后的 HEXT 中选择
QQ截图20231029132402.png
这块板子外接了32.768kHz的低速晶振
QQ截图20231029104313.png
在AT32 Work Bench开启它,并配置ERTC使用
QQ截图20231029104347.png QQ截图20231029104330.png
中开启ERTC的时钟源和日历,可以在这里直接配置初始的日期和时间
QQ截图20231029122353.png
配置唤醒定时器每1秒中断一次并开启唤醒中断,然后生成代码,这里要注意一下,生成的ERTC配置代码中唤醒中断的相关代码缺少了一部分,ERTC唤醒中断还要配置EXINT
QQ截图20231029122132.png
需要手动加上相关代码
QQ截图20231029130736.png
后来再生成代码这里又有了
QQ截图20231029184954.png
中断函数处理
  1. void proc_ertc_update()
  2. {
  3.     ertc_time_type time;

  4.     ertc_calendar_get(&time);
  5.     printf("Time:  %02d-%02d-%02d 星期%d ",time.year, time.month, time.day, time.week);
  6.     printf("%02d:%02d:%02d\r\n",time.hour, time.min, time.sec);
  7. }
  8. void ERTC_WKUP_IRQHandler(void)
  9. {
  10.   /* add user code begin ERTC_WKUP_IRQ 0 */
  11.     extern void proc_ertc_update();
  12.     if(ertc_flag_get(ERTC_WATF_FLAG) != RESET)
  13.     {
  14.         ertc_flag_clear(ERTC_WATF_FLAG);
  15.         exint_flag_clear(EXINT_LINE_22);
  16.         proc_ertc_update();
  17.     }

  18.   /* add user code end ERTC_WKUP_IRQ 0 */
  19.   /* add user code begin ERTC_WKUP_IRQ 1 */

  20.   /* add user code end ERTC_WKUP_IRQ 1 */
  21. }
运行效果

QQ截图20231029122837.png
结合之前的LCD
WeChat_20231029131953 00_00_00-00_00_30.gif

您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:同飞软件研发工程师
简介:制冷系统单片机软件开发,使用PID控制温度

168

主题

826

帖子

10

粉丝
快速回复 在线客服 返回列表 返回顶部