Signed-off-by: kevin <kevin@lmve.net>
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
#include "eeprom.h"
|
||||
|
||||
eeprom_write_buff_info eeprom_write_buffer;
|
||||
|
||||
void EPPROM_SLOWWRITE_INIT()
|
||||
{
|
||||
eeprom_write_buffer.buff=NULL;
|
||||
eeprom_write_buffer.end=NULL;
|
||||
eeprom_write_buffer.head=NULL;
|
||||
eeprom_write_buffer.save_timeout=5;
|
||||
eeprom_write_buffer.save_busy=0;
|
||||
}
|
||||
|
||||
void EEPROM_SLOWWRITE_SERVER()
|
||||
{
|
||||
eeprom_write_buff *buff;
|
||||
char data;
|
||||
if(eeprom_write_buffer.save_busy)
|
||||
{
|
||||
if(HAL_GetTick()>eeprom_write_buffer.save_time)
|
||||
{
|
||||
eeprom_write_buffer.save_busy=0;
|
||||
}
|
||||
}else
|
||||
{
|
||||
if(eeprom_write_buffer.head!=NULL)
|
||||
{
|
||||
eeprom_write_buffer.save_busy=1;
|
||||
eeprom_write_buffer.save_time=HAL_GetTick()+eeprom_write_buffer.save_timeout;
|
||||
buff=eeprom_write_buffer.head->next;
|
||||
data=eeprom_write_buffer.head->date;
|
||||
IIC_SAND_DATE(EEPROM_ADDRESS,eeprom_write_buffer.head->add,&data,1);
|
||||
free(eeprom_write_buffer.head);
|
||||
eeprom_write_buffer.head=buff;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void EEPROM_READ_BATY(uint16_t IN_DEVICE_ADD,char *DATAS,uint16_t LONG)
|
||||
{
|
||||
IIC_READ_DATE(EEPROM_ADDRESS,IN_DEVICE_ADD,DATAS,LONG);
|
||||
}
|
||||
|
||||
void EEPROM_WRITE_BATY(uint16_t IN_DEVICE_ADD,char *DATAS,uint16_t LONG)
|
||||
{
|
||||
//IIC_SAND_DATE(EEPROM_ADDRESS,IN_DEVICE_ADD,DATAS,LONG);
|
||||
uint16_t addoffset=0;
|
||||
|
||||
|
||||
eeprom_write_buff *buff;
|
||||
eeprom_write_buff *buff2;
|
||||
while(LONG--)
|
||||
{
|
||||
buff =(eeprom_write_buff*)malloc(sizeof(eeprom_write_buff));
|
||||
if(buff!=NULL)
|
||||
{
|
||||
buff->add=IN_DEVICE_ADD+addoffset;
|
||||
buff->date=DATAS[addoffset];
|
||||
buff->next=NULL;
|
||||
}else{return ;}
|
||||
if(eeprom_write_buffer.head==NULL)
|
||||
{
|
||||
eeprom_write_buffer.head=buff;
|
||||
eeprom_write_buffer.end=buff;
|
||||
}else
|
||||
{
|
||||
buff2=eeprom_write_buffer.end;
|
||||
buff2->next=buff;
|
||||
eeprom_write_buffer.end=buff;
|
||||
}
|
||||
addoffset++;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
#ifndef EEPROM_H_
|
||||
#define EEPROM_H_
|
||||
|
||||
#include "main.h"
|
||||
#include "hread_interface.h"
|
||||
|
||||
#define EEPROM_ADDRESS 0xa0
|
||||
|
||||
typedef struct eeprom_write_buff
|
||||
{
|
||||
struct eeprom_write_buff *next;
|
||||
uint16_t add;
|
||||
char date;
|
||||
}eeprom_write_buff;
|
||||
|
||||
typedef struct eeprom_write_buff_info
|
||||
{
|
||||
eeprom_write_buff *buff;
|
||||
eeprom_write_buff *head;
|
||||
eeprom_write_buff *end;
|
||||
uint32_t save_time;
|
||||
uint8_t save_timeout;
|
||||
uint8_t save_busy:1;
|
||||
|
||||
}eeprom_write_buff_info;
|
||||
|
||||
void EPPROM_SLOWWRITE_INIT();
|
||||
void EEPROM_SLOWWRITE_SERVER();
|
||||
|
||||
|
||||
void EEPROM_READ_BATY(uint16_t IN_DEVICE_ADD,char *DATAS,uint16_t LONG);
|
||||
void EEPROM_WRITE_BATY(uint16_t IN_DEVICE_ADD,char *DATAS,uint16_t LONG);
|
||||
|
||||
|
||||
#endif
|
||||
@@ -20,7 +20,7 @@ char config_buzzer_for_sele_change=0;
|
||||
|
||||
int config_oled_luminance=100;
|
||||
|
||||
|
||||
char sys_lan=0;
|
||||
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ int mode=0;
|
||||
uint32_t run_tick=0,jump_tick=0;
|
||||
|
||||
uint16_t fps=0,fps_=0;
|
||||
char sys_lan=0;
|
||||
|
||||
|
||||
int encode_c=0;
|
||||
|
||||
@@ -63,7 +63,7 @@ const char * GET_WORD(word*word,char lan)
|
||||
return word->ch;
|
||||
break;
|
||||
}
|
||||
|
||||
return "X.X";
|
||||
}
|
||||
|
||||
|
||||
@@ -343,6 +343,8 @@ void mymain()
|
||||
|
||||
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_3);//启动n通道的pwm
|
||||
HAL_TIM_Base_Start_IT(&htim3);
|
||||
|
||||
EPPROM_SLOWWRITE_INIT();
|
||||
OLED_Init();//屏幕初始化
|
||||
OLED_Setting_luminance(config_oled_luminance);
|
||||
|
||||
@@ -429,6 +431,7 @@ void mymain()
|
||||
mo_server();
|
||||
BUZZER_PLAY_SERVER();
|
||||
OLED_Cache_to_hardware();//刷新屏幕
|
||||
EEPROM_SLOWWRITE_SERVER();
|
||||
|
||||
if(HAL_GetTick()>run_tick)
|
||||
{
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
#include "encode.h"
|
||||
#include "hread_interface.h"
|
||||
#include "morsr.h"
|
||||
#include "eeprom.h""
|
||||
|
||||
typedef struct
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user