【Gokit3S SOC/MCU 试用体验】网络时间获取3——新版获取方法

  • 1061368165@qq.c
  • LV5工程师
  • |      2017-11-20 20:19:00
  • 浏览量 895
  • 回复:0
之前跟着机智云社区某位大神的例程走,后来才发现原来这个版本自动生成的代码已经带有时间获取的API,估计是大神那个时候的版本太低才需要自己写。 前面两张帖子是我根据大神例程的学习机智云代码结构的总结,不过不知道是什么原因发不出来。 (一)网络时间获取的API 1、官方定义的命令: 对应的操作函数: 时间获取函数: 那么只需要在case里面更新时间就可以了。 2、来分析一下gizGetTimerCount()函数:看看timerMsCount 看看gizTimerMs() 看看TIMER_IRQ_FUN() 竟然是个中断!这就是个定时器3的中断处理函数!看看定时器3的使能是怎么样的: 可以算出溢出时间是(7199+1)*(9+1)/72000000=0.001s=1ms,其实从gizTimerMs的函数名就可以看出来。综上所述,timerMsCount就是一个计算从开机到目前的毫秒数,它的定义:static uint32_t timerMsCount;是一个无符号32位整型,算一下,可以整整维持接近50天连续开机的计算。所以例程中这一句: 如果要定时1s的话,SAMPLING_TIME_MAX=1000 (二)实现:定义结构体:typedef struct{ uint16_t year; uint16_t month; uint16_t day; uint16_t hour; uint16_t minute; uint16_t second;}mytime_t; extern mytime_t mytime; case ACK_GET_NTP,里面: userHandle里面,上面定义一个:#define SAMPLING_TIME_MAX 1000 效果展示:
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:0
x
收藏成功!点击 我的收藏 查看收藏的全部帖子