////////////////////////////////////////////////////////////////////////// /// 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; }