forked from ccsens_hardware/ttss_sop
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
124 lines
2.8 KiB
124 lines
2.8 KiB
//////////////////////////////////////////////////////////////////////////
|
|
/// COPYRIGHT NOTICE
|
|
/// Copyright (c) 2015, 传控科技
|
|
/// All rights reserved.
|
|
///
|
|
/// @file app_paraid.c
|
|
/// @brief parameter & id app
|
|
///
|
|
///(本文件实现的功能的详述)
|
|
///
|
|
/// @version 1.1 CCsens technology
|
|
/// @author CC
|
|
/// @date 20190107
|
|
///
|
|
///
|
|
/// 修订说明:最初版本
|
|
/// Modified by:
|
|
/// Modified date:
|
|
/// Version:
|
|
/// Descriptions:
|
|
///
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
#include "app_algorithm.h"
|
|
#include "app_paraid.h"
|
|
#include "../clib/Clib.h"
|
|
#include "../clib/bit.h"
|
|
#include "../msp/msp_eeprom.h"
|
|
//
|
|
|
|
///
|
|
|
|
#define D_paraid_debug_print
|
|
/// 本机id
|
|
/// 纸张的配置参数
|
|
|
|
void L1_paraid_init(void)
|
|
{
|
|
vU16 pa[2];
|
|
|
|
/// char *ID;
|
|
/// ID = (char idata *)0xf1;/// for (i=0; i<7; i++) { UartSend(ID[i]); }
|
|
///UartSend(ID[i]);
|
|
|
|
// L1_Iap_Read_us(D_paraAdd_paper150,&ts_task_ALGO.usPaper150);
|
|
// L1_Iap_Read_us(D_paraAdd_paper150,&ts_task_ALGO.usPaper150);
|
|
// L1_Iap_main();
|
|
|
|
|
|
L1_Iap_Read_us(D_paraAdd0_paper150,&pa[0]);
|
|
L1_Iap_Read_us(D_paraAdd1_paper150,&pa[1]);
|
|
#ifdef D_paraid_debug_print
|
|
L0_uart0_us(pa[0]);L0_uart0_us(pa[1]); L0_uart0_uc(0xAA);
|
|
#endif
|
|
if(pa[1] == pa[0])
|
|
{
|
|
if(0xffff != pa[1])
|
|
{
|
|
if(pa[0] < D_paper_150at_top)
|
|
{
|
|
if(pa[0] > D_paper_150at_bottom)
|
|
{
|
|
goto GOTO_PARA_OK;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/// GOTO_PARA_ERRO:
|
|
L1_Iap_Write_us(D_paraAdd0_paper150,D_paper_150at);
|
|
L1_Iap_Write_us(D_paraAdd1_paper150,D_paper_150at);
|
|
pa[0] = D_paper_150at;
|
|
|
|
GOTO_PARA_OK:
|
|
ts_task_ALGO.usPaper150 = pa[0];
|
|
#ifdef D_paraid_debug_print
|
|
L0_uart0_us(ts_task_ALGO.usPaper150);L0_uart0_uc(0xBB);
|
|
#endif
|
|
///nothing
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void L1_Iap_Write_us(vU16 addr,vU16 val)
|
|
{
|
|
EA = 0;
|
|
/*********
|
|
IAP_CONTR = WT_12M; //使能IAP
|
|
IAP_CMD = 3; //设置IAP擦除命令
|
|
IAP_ADDRL = addr; //设置IAP低地址
|
|
IAP_ADDRH = addr >> 8; //设置IAP高地址
|
|
IAP_TRIG = 0x5a; //写触发命令(0x5a)
|
|
IAP_TRIG = 0xa5; //写触发命令(0xa5)
|
|
_nop_(); //
|
|
_nop_();
|
|
|
|
|
|
IAP_CMD = 2; //设置IAP写命令
|
|
IAP_DATA = dat; //写IAP数据
|
|
IAP_TRIG = 0x5a; //写触发命令(0x5a)
|
|
IAP_TRIG = 0xa5; //写触发命令(0xa5)
|
|
_nop_();
|
|
L0_Iap_Idle(); //关闭IAP功能
|
|
***************/
|
|
L0_Iap_Erase(addr);
|
|
L0_Iap_Program(addr,val>>8);
|
|
L0_Iap_Program(addr+1,val&0x00ff);
|
|
EA = 1;
|
|
}
|
|
|
|
|
|
void L1_Iap_Read_us(vU16 addr,vU16 *val)
|
|
{
|
|
EA = 0;
|
|
*val = L0_Iap_Read(addr);
|
|
*val <<= 8;
|
|
*val |= L0_Iap_Read(addr+1);
|
|
EA = 1;
|
|
|
|
}
|
|
|