📄 guide.c
字号:
//int start_state;
#include "config.h"
int num_dd=0;
int my_second,div_second,i_delay;
int rt_second,rt_tenminute,rt_min,rt_min2;
int chgYesNo=0;
int test_gray;
#include ".\2407_add\lf2407.h"
#include "general.h"
//#include "hanzi.h"
//#include "math.h"
#include "dsp_timer.h"
#include "dsp_com.h"
#include "dsp_flash.h"
#include "dsp_display.h"
#include "REAL_TIME.h"
void main(){
int i, j, mm=120, m,aa,cycle,n,k;
BYTE kk,temp;
int main_temp;
int num_main,i_start,i_end,flag,a_main;
volatile unsigned char *pdata=(volatile unsigned char*) 0x8000;
/*SCSR2=*SCSR2|0xFFFC;
*SCSR2=*SCSR2&0xFFFE;*/ /*DPM=1 AMD [PM=0 SELECT THE SRAM IN THE DATA RAM*/
chg_speed(1);
my_second=0;
div_second=0;
i_delay=0;
test_gray=0;
rt_min=0;
rt_min2=0;
change_gray(test_gray);
chg_speed(0);
init_sys();
init_com(0);
init_timer();
timer1init();
start_timer1();
enable_int();
my_second=2;
while(my_second>0);
#ifdef _TEST_EASY
while(1){
#endif
selectchip(0x08);
clr_dispRam(0x000F);
#ifdef _TEST_EASY
clr_dispRam(0x0005);
#endif
selectchip(0x18);
my_second=3;
while(my_second>0);
clr_dispRam(0x00F0);
#ifdef _TEST_EASY
clr_dispRam(0x00a0);
#endif
selectchip(0x08);
chg_speed(0);
#ifdef _TEST_EASY
my_second=3;
while(my_second>0);
}
#endif
aa=0x08;
my_second=0;
real_time_init();
read_time(pTime);
rt_second=0;
rt_tenminute=0;
my_second=2;
while(my_second>0);
AT_init();
my_second=1;
while(my_second>0);
AT_init();
div_second=500;
my_second=1;
while(my_second>0);
test_gray=0;
change_gray(0);
init_SRbuf(0x03);
/*
for(i=0;i<10;i++)
*(p_recbuf+i)=0x30+i;
aa=cal_crc(p_recbuf,10);
*/
/////////////////// 斜线
#ifdef _TEST_LINE
while(1){
test_lean();
}
#endif
/////////////////////////时钟
///////////////////
while(1){
if((rec_len>120)&&(start_index==-1))
init_SRbuf(0x03);
while(i_com){
for(i=0;i<100;i++){
if(end_index==-1){
div_second=200;
my_second=1;
}
while(my_second>0);
}
if(end_index-start_index<512){
div_second=200;
my_second=3;
while(my_second>0);
}
if(end_index!=-1){
///////////////收到内容
error=0;
rt_min2=0;
////////////校验
if(crc_YesNo()!=1){
error=1;
init_SRbuf(0x02);
chgYesNo=20;
while(chgYesNo>0);
AT_ack(0x31+error);
}
////////////判断操作
else{
temp=*(p_recbuf+start_index);
if(temp==0x00){
if(end_index-start_index>=512){
com_movedata(p_recbuf+start_index+3);
flash_write((*(p_recbuf+start_index+1))*256+(*(p_recbuf+start_index+2)),p_recbuf+start_index+4,(*(p_recbuf+start_index+3)));
init_SRbuf(0x02);
chgYesNo=20;
while(chgYesNo>0);
AT_ack(0x31+error);
}
}
if(temp==0x01){
flash_write_cycle(*(p_recbuf+start_index+3), p_recbuf+start_index,(end_index-start_index)/16);
init_SRbuf(0x02);
chgYesNo=20;
while(chgYesNo>0);
AT_ack(0x31+error);
}
if(temp==0x04){
regulate_time(p_recbuf+start_index);
flash_write(240,p_recbuf+start_index+1,0);
init_SRbuf(0x02);
chgYesNo=20;
while(chgYesNo>0);
AT_ack(0x31+error);
rt_tenminute=0;
}
}////else //CRC
}////end_index!=-1
else{ ////end_index!=-1
init_SRbuf(0x02);
rt_tenminute=0;
}
for(i=0;i<100;i++){
if(start_index==-1){
div_second=200;
my_second=1;
}
while(my_second>0);
}
//rt_min=0;
num_dd=0;
}
if(i_com!=0) continue;
if(i_delay>0) continue;
///////
total_disp();
rt_min=0;
rt_min2=0;
if(rt_tenminute==0){
rt_tenminute=5;
read_time(pTime);
time_change_gray(pTime[4]&0xff);
move_data(240);
pdata=(volatile unsigned char*)0x8000;
if(compare_time(pdata+0x400)==0){
test_gray=test_gray|0xf0;
change_gray(test_gray);
}
else{
test_gray=test_gray&0x0f;
change_gray(test_gray);
}
}
///
//change_gray(0);
/*if(((*SCIRXST)&(0x80))!=0)///////////////////////////串口出错
*WDCR=0xA8;
*/
////////////低功耗
while(i_delay>1){
if(i_com>0)
i_delay=0;
*SCSR1=(*SCSR1)&0xCFFF;
}
}
}
void interrupt sciint(){
switch(*PIVR){
case 6:com_recieve();break;
case 7:com_send();break;
}
//enable_int();
}
void interrupt timer1(){
int flag;
flag=(*EVAIFRA)&0x0080;
if(flag!=0x0080){
enable_int();
return;
}
*T1CNT=0x80;
*EVAIFRA=(*EVAIFRA)&0x0080;
if(chgYesNo>0)
chgYesNo--;
if(chgYesNo<=0)
chgYesNo=0;
if(div_second>1000)
div_second=1000;
div_second--;
if(div_second<=0){
my_second--;
i_delay--;
div_second=1000;
rt_second++;
}
if((rt_second<0)||(rt_second>=60)){
rt_second=0;
rt_min++;
rt_min2++;
if(rt_tenminute>0)
rt_tenminute--;
if((rt_tenminute<0)||(rt_tenminute>10))
rt_tenminute=0;
}
if((my_second<=0)|(my_second>200))
my_second=0;
if((i_delay<0)|(i_delay>200))
i_delay=0;
/*
if(((*SCIRXST)&(0x80))!=0){
///////////////////////////串口出错
*WDCR=0xA8;
}
*/
if((((*SCIRXST)&(0x80))==0)&&(rt_min<100)&&(rt_min2<20)){
///////////////////////////没有 (串口出错 其他错误)
clr_Watchdog();
}
enable_int();
}
void interrupt timer2(){
;
}
void interrupt nothing(){
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -