中级会员
 
- 积分
- 271
- 金钱
- 271
- 注册时间
- 2017-3-27
- 在线时间
- 76 小时
|
1金钱
原子哥,问下,在电阻触摸屏实验中,需要将校准数据保存在EEPROM里,但是为什么是保存14字节呢?如下
#define SAVE_ADDR_BASE 40
//保存校准参数
void TP_Save_Adjdata(void)
{
AT24CXX_Write(SAVE_ADDR_BASE,(u8*)&tp_dev.xfac,14); //强制保存&tp_dev.xfac地址开始的14个字节数据,即保存到tp_dev.touchtype
AT24CXX_WriteOneByte(SAVE_ADDR_BASE+14,0X0A); //在最后,写0X0A标记校准过了
}
注释中说强制保存&tp_dev.xfac地址开始的14个字节数据,即保存到tp_dev.touchtype,但是下面这个结构体,从float xfac成员到u8 touchtype是16个字节的,从float xfac到short yoff是12个字节的,不明白为什么是保存14个字节,谢谢!
typedef struct
{
u8 (*init)(void); //初始化触摸屏控制器
u8 (*scan)(u8); //扫描触摸屏.0,屏幕扫描;1,物理坐标;
void (*adjust)(void); //触摸屏校准
u16 x[CT_MAX_TOUCH]; //当前坐标
u16 y[CT_MAX_TOUCH]; //电容屏有最多5组坐标,电阻屏则用x[0],y[0]代表:此次扫描时,触屏的坐标,用
//x[4],y[4]存储第一次按下时的坐标.
u8 sta; //笔的状态
//b7:按下1/松开0;
//b6:0,没有按键按下;1,有按键按下.
//b5:保留
//b4~b0:电容触摸屏按下的点数(0,表示未按下,1表示按下)
/////////////////////触摸屏校准参数(电容屏不需要校准)//////////////////////
float xfac;
float yfac;
short xoff;
short yoff;
//新增的参数,当触摸屏的左右上下完全颠倒时需要用到.
//b0:0,竖屏(适合左右为X坐标,上下为Y坐标的TP)
// 1,横屏(适合左右为Y坐标,上下为X坐标的TP)
//b1~6:保留.
//b7:0,电阻屏
// 1,电容屏
u8 touchtype;
}_m_tp_dev;
|
|