优化代码逻辑
This commit is contained in:
parent
f8ffa00e00
commit
12fe1b13c7
@ -7,8 +7,15 @@
|
|||||||
typedef unsigned int u16;
|
typedef unsigned int u16;
|
||||||
typedef unsigned char u8;
|
typedef unsigned char u8;
|
||||||
|
|
||||||
|
// 用于自动重启的变量
|
||||||
|
__sfr __at (0xE7) ISP_CONTR;
|
||||||
|
#define RESET_PASSWORD_LENGTH 6
|
||||||
|
extern char __xdata reset_password[RESET_PASSWORD_LENGTH];
|
||||||
|
extern char __xdata receice_password[RESET_PASSWORD_LENGTH];
|
||||||
|
|
||||||
|
|
||||||
void delay_10us(u16 ten_us);
|
void delay_10us(u16 ten_us);
|
||||||
void delay_ms(u16 ms);
|
void delay_ms(u16 ms);
|
||||||
|
u8 auto_reset(u8 rec_data);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
28
src/main.c
28
src/main.c
@ -17,35 +17,7 @@
|
|||||||
|
|
||||||
int HH=0, MM=0, SS=0;
|
int HH=0, MM=0, SS=0;
|
||||||
int send_tmp = 0;
|
int send_tmp = 0;
|
||||||
__sfr __at (0xE7) ISP_CONTR;
|
|
||||||
#define RESET_PASSWORD_LENGTH 6
|
|
||||||
char __xdata reset_password[RESET_PASSWORD_LENGTH] = "RESET";
|
|
||||||
char __xdata receice_password[RESET_PASSWORD_LENGTH] = {0};
|
|
||||||
/*******************************************************************************
|
|
||||||
* 函 数 名 : auto_reset
|
|
||||||
* 函数功能 : 接受到重启命令RESET!后,软复位MCU
|
|
||||||
* 输 入 : 无
|
|
||||||
* 输 出 : 0:检测到重启命令,1:未检测到重启命令
|
|
||||||
*******************************************************************************/
|
|
||||||
u8 auto_reset(u8 rec_data)
|
|
||||||
{
|
|
||||||
for(u8 i=0;i<RESET_PASSWORD_LENGTH-1;i++)
|
|
||||||
{
|
|
||||||
receice_password[i] = receice_password[i+1];
|
|
||||||
}
|
|
||||||
receice_password[RESET_PASSWORD_LENGTH-1] = rec_data;
|
|
||||||
|
|
||||||
for(u8 i=0;i<RESET_PASSWORD_LENGTH-1;i++)
|
|
||||||
{
|
|
||||||
if(receice_password[i]!= reset_password[i])
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ISP_CONTR = 0x60; //软件复位并切换到系统ISP监控程序区开始执行程序
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* 函 数 名 : main
|
* 函 数 名 : main
|
||||||
* 函数功能 : 主函数
|
* 函数功能 : 主函数
|
||||||
|
28
src/public.c
28
src/public.c
@ -23,3 +23,31 @@ void delay_ms(u16 ms)
|
|||||||
for(i=ms;i>0;i--)
|
for(i=ms;i>0;i--)
|
||||||
for(j=110;j>0;j--);
|
for(j=110;j>0;j--);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
* 函 数 名 : auto_reset
|
||||||
|
* 函数功能 : 接受到重启命令RESET!后,软复位MCU
|
||||||
|
* 输 入 : 无
|
||||||
|
* 输 出 : 0:检测到重启命令,1:未检测到重启命令
|
||||||
|
*******************************************************************************/
|
||||||
|
char __xdata reset_password[RESET_PASSWORD_LENGTH] = "RESET";
|
||||||
|
char __xdata receice_password[RESET_PASSWORD_LENGTH] = {0};
|
||||||
|
u8 auto_reset(u8 rec_data)
|
||||||
|
{
|
||||||
|
for(u8 i=0;i<RESET_PASSWORD_LENGTH-1;i++)
|
||||||
|
{
|
||||||
|
receice_password[i] = receice_password[i+1];
|
||||||
|
}
|
||||||
|
receice_password[RESET_PASSWORD_LENGTH-1] = rec_data;
|
||||||
|
|
||||||
|
for(u8 i=0;i<RESET_PASSWORD_LENGTH-1;i++)
|
||||||
|
{
|
||||||
|
if(receice_password[i]!= reset_password[i])
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ISP_CONTR = 0x60; //软件复位并切换到系统ISP监控程序区开始执行程序
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user