(1)搭建软件RTC时钟或硬件RTC时钟 RX8130
(2)LOG_MAX_MSG 配置日志最大记录数,
(3)LOG_MSG_LEN 配置单条记录最大长度
(4)初始化日志结构体,配置起始地址、间隔距离、每页显示记录条数
(5)实现插入日志记录、移动到第一页,移动到下一页,移动到上一页、移动到最后一页功能
(6)当插入记录缓冲区满时,自动剔除最老的记录,并保存新记录
二、源码解析
1. 地址分配说明
初始化日志函数(log.c)
void Log_Init(xLog_t *ptr,uint16_t dgus_addr,uint16_t interval,uint8_t pageSize)
初始化起始地址 0x1200,信息间隔地址0x100 每页显示5条信息
Log_Init(&logWeight,0x1200,0x100,5);
2.插入记录,随机产生重量数据,当重量在±0.20内判为合格
//依据业务需求可重新设计函数,插入重量数值到日志缓冲区
//每条记录有多个字段信息时,也通过 sprintf 函数整理为一条文本信息进行显示。
void Log_InsertInt(xLog_t *ptr,int16_t value)
{
float tmp;
uint8_t flag;
uint16_t color;
uint8_t buff[20];
uint8_t len;
tmp=value;
flag=0;
if(value>5020) flag=1;
if(value<4980) flag=2;
tmp/=100;
switch(flag)
{
case 0:
color=0x0;
len=sprintf(buff,"合格: %3.2f kg",tmp);
break;
case 1:
color=0xf800;
len=sprintf(buff,"超重: %3.2f kg",tmp);
break;
case 2:
color=0x001f;
len=sprintf(buff,"超轻: %3.2f kg",tmp);
break;
}
Log_InsertMsg(ptr,buff,color); //添加记录到日志缓冲区
}
3. 调用函数显示每页数据