?? highw.c
字號:
int screen_length=15; //屏的長度 單位:塊 (即長度/32. screen_length=32 or 15, i.e. 1024 or 480}
long pp;
#define _FAC_TEST
#define BYTE unsigned char
int finish_process=1;
int cycle_len=0;
int my_second,div_second,i_delay;
int rt_second,rt_tenminute;
BYTE sms_kk;
int sms_time;
int error;
int de_sms;
#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"
volatile unsigned char *p_cycle=(volatile unsigned char*) 0x0f80;
void main(){
int i, j,b, mm=120, m,aa,cycle,n,k;
BYTE kk;
int main_temp;
int test_gry;
int num_main,i_start,i_end,flag,a_main;
volatile unsigned int *pdata=(volatile unsigned int*) 0x8000;
my_second=0;
div_second=0;
i_delay=0;
init_sys();
init_com(0);
init_timer();
timer1init();
start_timer1();
enable_int();
/*
for(i=0;i<124;i+=4)
erase_sector(i);
*/
chg_speed(0);
selectchip(0x08);
clr_dispRam(0x00ff);
selectchip(0x18);
clr_dispRam(0x000a);
selectchip(0x08);
chg_speed(0);
/*save_cartoon();
test_gry=15;
while(1){
test_cartoon();
}*/
/*準備顯示循環(huán) */
/*(pdata+0x17ff-128*2)=0x05;
spec_disp(0x07);
selectchip(0x18);
while(1); */
aa=flash_read(0,p_flashbuf,0);
if(aa>3){
if(aa<620)
cycle_len=(aa/5);
else
cycle_len=124;
for(i=0;i<cycle_len;i++)
p_cycle[i]=(p_flashbuf[5*i+2]&0x0F)*100+(p_flashbuf[5*i+3]&0x0F)*10+(p_flashbuf[5*i+4]&0x0F);
}
else{
cycle_len=124;
for(i=0;i<cycle_len;i++)
p_cycle[i]=i;
}
/*準備顯示循環(huán) */
aa=0x08;
my_second=0;
finish_process=1;
sms_kk=1;
/*for(i=0;i<124;i++)
erase_sector(i);
/*
while(1){
WSGR1=0x10;
}
my_second=2;
while(my_second>0);
read_time();
*/
change_gray(15);
test_gry=15;
/////////////////// 斜線
while(1){
i=0;
test_lean();
}
////////////////////////////全亮
/* while(1){
selectchip(0x08);
clr_dispRam(0x00ff);
selectchip(0x18);
clr_dispRam(0x00ff);
if(test_gry==15){
my_second=30;
change_gray(test_gry);
test_gry=0;
}
else{
test_gry=15;
}
while(my_second>0);
//test_lean();
selectchip(0x08);
clr_dispRam(0x00ff);
selectchip(0x18);
clr_dispRam(0x00ff);
if(test_gry==0){
my_second=3;
change_gray(test_gry);
test_gry=15;
}
while(my_second>0);
}*/
/////////////////////////時鐘
/*
selectchip(0x03);
while(1){
WSGR2=0x0b;
aa=WSGR1;
WSGR2=0x0c;
aa=WSGR1;
WSGR2=0x0d;
aa=WSGR1;
aa=(BYTE)(aa&0x00ff);
WSGR2=0x11;
WSGR1=0x0a;
WSGR2=0x11;
aa=WSGR1;
aa=aa&0x00ff;
} */
real_time_init();
read_time();
rt_second=0;
rt_tenminute=0;
chg_speed(0);
///////////////////
/*
while(1){
if(rt_tenminute==0){
read_time();
main_temp=p_flashbuf[4];
main_temp=(main_temp&0x00FF);
main_temp=(main_temp/16)*10+(main_temp%16);
time_change_gray(main_temp);
rt_tenminute=5;
}
begin_sms:
if((finish_process==1)&&(my_second==0)){
AT_init();
init_SRbuf(3);
div_second=1000;
my_second=7;
while(my_second>6);
AT_read(sms_kk);
de_sms=sms_kk;
sms_kk++;
if(sms_kk>15){
sms_kk=1;
/////////////////////////////手機初始化
}
//init_SRbuf(3);
div_second=1000;
my_second=3;
while(my_second>1);
}
if((finish_process==0)&&(my_second<2)){
analyse(&i_start,&i_end);
num_main=i_end-i_start;
flag=JustYesNo(&i_start,&i_end);
AT_delete(de_sms);
div_second=1000;
my_second=5;
while(my_second>3);
if((flag>0)&&(flag<10)&&(de_sms<3)){
set_time();
}
////////////////////////////flag=1
if(flag==1){
error=1;
i_start=i_start+4;
aa=(p_recbuf[i_start+8]&0x0f)*10+(p_recbuf[i_start+9]&0x0f);
//change_gray(aa);
a_main=(p_recbuf[i_start]&0x0F)*100+(p_recbuf[i_start+1]&0x0F)*10+(p_recbuf[i_start+2]&0x0F); ///??//
a_main=a_main+4;
flash_write(a_main,(p_recbuf+i_start+3),(num_main-16)); ////////////////////////寫入flash
a_main=(p_recbuf[i_start+13]&0x0F);
if(a_main==0)
flash_write_old(1,(p_recbuf+i_start+14),4);
my_second=6;
while(my_second>3);
AT_ack((i_start-4),num_main);////////發(fā)回去
///////////////
div_second=1000;
my_second=30;
//init_SRbuf(3);
}
///////////////////////////////flag=1
////////////////////////////flag=3
if(flag==3){
error=1;
i_start=i_start+4;
a_main=(p_recbuf[i_start]&0x0F)*100+(p_recbuf[i_start+1]&0x0F)*10+(p_recbuf[i_start+2]&0x0F); ///??//
a_main=a_main+4;
flash_write(a_main,(p_recbuf+i_start+3),0); ////////////////////////寫入flash
my_delay(5000);
my_second=6;
while(my_second>3);
AT_ack((i_start-4),num_main);////////發(fā)回去
div_second=1000;
my_second=30;
//init_SRbuf(3);
}
///////////////////////////////flag=3
////////////////////////////flag=4
if(flag==4){
error=1;
i_start=i_start+4;
flash_write_old(0,&p_recbuf[i_start],num_main-13);
my_second=6;
while(my_second>3);
AT_ack((i_start-4),num_main);////////發(fā)回去
///////////////////////////////////
aa=flash_read(0,p_flashbuf,0);
if(aa>=5){
cycle_len=aa/5;
for(i=0;i<cycle_len;i++)
p_cycle[i]=(p_flashbuf[5*i+2]&0x0F)*100+(p_flashbuf[5*i+3]&0x0F)*10+(p_flashbuf[5*i+4]&0x0F);
}
else{
cycle_len=124;
for(i=0;i<cycle_len;i++)
p_cycle[i]=i;
}
div_second=1000;
my_second=30;
//init_SRbuf(3);
}
///////////////////////////////flag=4
////////////////////////////flag=5
if(flag==5){
error=1;
i_start=i_start+4;
aa=flash_read(0,p_flashbuf,0);
for(i=0;i<(num_main-13);i++)
p_flashbuf[aa+i]=p_recbuf[i_start+i];
flash_write(0,p_flashbuf,aa+num_main-13);
/////////////////////
my_second=6;
while(my_second>3);
AT_ack((i_start-4),num_main);////////發(fā)回去
////////////////////////////////
aa=flash_read(0,p_flashbuf,0);
if(aa>=5){
cycle_len=aa/5;
for(i=0;i<cycle_len;i++)
p_cycle[i]=(p_flashbuf[5*i+2]&0x0F)*100+(p_flashbuf[5*i+3]&0x0F)*10+(p_flashbuf[5*i+4]&0x0F);
}
else{
cycle_len=124;
for(i=0;i<cycle_len;i++)
p_cycle[i]=i;
}
/////////////////////
div_second=1000;
my_second=30;
//init_SRbuf(3);
}
///////////////////////////////flag=5
////////////////////////////flag=6
if(flag==6){
error=1;
i_start=i_start+4;
a_main=(p_recbuf[i_start]&0x0F)*100+(p_recbuf[i_start+1]&0x0F)*10+(p_recbuf[i_start+2]&0x0F); ///??//
fac_reset(a_main);
div_second=1000;
my_second=30;
//init_SRbuf(3);
}
///////////////////////////////flag=6
sms_time=0;
my_second=20;
while(my_second>2);
while((error==1)&&(sms_time<3)){
sms_time++;
///////////////////////////////
if(((*SCIRXST)&(0x80))!=0){
///////////////////////////串口出錯
*WDCR=0xA8;
}
////////////////////////////
AT_ack((i_start-4),num_main);
my_second=20;
while(my_second>2);
}
finish_process=1;
init_SRbuf(3);
if((flag>0)&&(flag<6)){
my_second=0;
goto begin_sms;
}
}
if(i_delay>0) continue;
aa=0;
if(cycle_len>124)
cycle_len=124;
do{
i=flash_read((p_cycle[cycle]+4),p_flashbuf,0);
cycle++;
if(cycle>=cycle_len)
cycle=0;
if(cycle<0)
cycle=0;
aa++;
}while((aa<cycle_len)&&(i<13));
//goto disp_next;
if(i<13) continue;*/
/*disp_next:
m=17;
n=0;
k=1;
do{
getPic(pdata48,16,k,6,0);
sort_screen(m,n,pdata48,6,7);
m=m+(n+6)/4;
n=(n+6)%4;
k++;
}while(m<32);
spec_disp(0x07);
*/
/* total_disp(p_cycle[cycle-1]+4);
if((g_flag&0x10)==0)
g_flag=(g_flag|0x10);
else
g_flag=(g_flag&0xEF);
selectchip(g_flag);
if(((*SCIRXST)&(0x80))!=0){
///////////////////////////串口出錯
*WDCR=0xA8;
}
////////////低功耗
while(i_delay>20){
*SCSR1=(*SCSR1)&0xCFFF;
}
////低功耗
} */
}
void interrupt sciint(){
}
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;
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;
}
enable_int();
}
void interrupt timer2(){
;
}
void interrupt nothing(){
return;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -