仪表模块

来源:互联网 发布:平价美白精华知乎 编辑:程序博客网 时间:2024/04/29 19:03
{//累计里程在DFLASH中的特殊处理
该函数包含一个重要策略,因为DFLASH每次在写一个存储单元之前都必须先擦除这个单元,DFLASH只能保证擦除10万次,仪表需要保存累计里程100万公里,
每公里保存1次,也就是100万次,必须使用策略减少擦除次数,该策略的思路是在保存累计里程的扇区的前4个字节保存长整型的累计里程基数,累计里程每增加1公里,
偏移地址加2,然后写入0x0000,直到扇区写满。根据偏移地址判断扇区有没有写满,1个扇区包含256个字节,扇区写满后,下次累计里程再增加1公里要写入时,
先擦除扇区,使所有位都置1,然后将最新的累计里程数写入扇区的前4个字节,作为累计里程基数,重新开始上述循环,读取时根据累计里程基数和偏移地址就可以计算
出累计里程数。按这种策略累计里程每增加123公里擦除1次扇区,DFLASH能保证擦除10万次,也就是说至少能保存累计里程1230万公里,远远超过100万公里的要求。
}
{//EEPROM的相关问题
在EEPROM的写操作中为什么读出校验失败后需要判断是否进行了3次写操作------是的话设置写错误标志。
|-----因为累计里程进行3份里程数据保存
首次使用EEPROM,EEPROM中的数据应为0XFF。EEPROM的擦写次数应为1000000次以上。
}
{//电机模块
电机起步和停止需要进行加速和减速,避免电机运行失步。此过程可用分段判断或查表法控制每步的运行时间,从而控制电机的运行速度。
}
0 0
原创粉丝点击