📄 main.c
字号:
if(1==write(EP1,3))
{
data_addr.addri=EP1_POWERDOWNALLLOSTV_NUM+6;
read(EP1,60);
for(l=59;l>11;l--)
wr_data[l]=wr_data[l-12];
time_to_wrdata();
for(l=0;l<6;l++)
wr_data[l+6]=wr_data[l];
write(EP1,60);
}
}
}
/*
void quan_shi_ya_end(unsigned char ucendtime)
{
unsigned char l;
unsigned long k;
if (ucendtime>10)
ucendtime=10;
data_addr.addri=EP1_POWERDOWNALLLOSTV_NUM+3;
if(1==read(EP1,3))
{
for(l=0;l<3;l++)
RAM[R_USER0+l]=wr_data[l];
for(l=0;l<ucendtime;l++)
byte_3_bcd_add(R_USER0);
for(l=0;l<3;l++)
wr_data[l]=RAM[R_USER0+l];
if(1==write(EP1,3))
{
data_addr.addri=EP1_POWERDOWNALLLOSTV_NUM+6+6;
time_to_wrdata();
write(EP1,6);
}
}
}
*/
void quan_shi_ya_zl_end(void)
{
unsigned char l,ucendtime;
unsigned long k;
unsigned int m1,m2;
unsigned long time_powerdown1,time_powerdown2;
data_addr.addri=EP1_POWERDOWNALLLOSTV_NUM+6+6;
read(EP1,6);
m1=num_day_form_date(&RSOFT_RTC_DAY);// dangqian data
m2=num_day_form_date(&wr_data[0]);// quanshiya fasheng data
m1=m1-m2; // dangqian data - fasheng data
if(m1<2) // if day --m1>1 ,err
{
// time_powerdown1 : dangqian time
time_powerdown1=m1;
time_powerdown1=24*60*time_powerdown1
+60*value_hex_from_bcd(RSOFT_RTC_HOUR)+value_hex_from_bcd(RSOFT_RTC_MINUTE);
// time_powerdown2 : quanshiya fasheng shijian
time_powerdown2=60*value_hex_from_bcd(wr_data[5])+value_hex_from_bcd(wr_data[4]);
if (time_powerdown1>=time_powerdown2) // if fangsheng shijian > dangqian shijian ,err
{
time_powerdown1=time_powerdown1-time_powerdown2;
if (quanshiya_tingchao_cishu>6)// yinwei keneng cunzai lianxu 6ci de keneng
quanshiya_tingchao_cishu=0;
if (quanshiya_tingchao_cishu>0)
quanshiya_tingchao_cishu=quanshiya_tingchao_cishu-1;
time_powerdown2=quanshiya_tingchao_cishu;
time_powerdown2=time_powerdown2*3;
if (time_powerdown1>=time_powerdown2) // bi xu dayu,fouze chu cuo
{
time_powerdown2=quanshiya_tingchao_cishu;
time_powerdown2=11+time_powerdown2*4;
if (time_powerdown1<time_powerdown2) // if time_powerdown1>11+quanshiya_tingchao_cishu*4; ,err
{
// quan shi ya shijian ok
ucendtime=time_powerdown1;
data_addr.addri=EP1_POWERDOWNALLLOSTV_NUM+3;
if(1==read(EP1,3))
{
for(l=0;l<3;l++)
RAM[R_USER0+l]=wr_data[l];
for(l=0;l<ucendtime;l++)
byte_3_bcd_add(R_USER0);
for(l=0;l<3;l++)
wr_data[l]=RAM[R_USER0+l];
if(1==write(EP1,3))
{
data_addr.addri=EP1_POWERDOWNALLLOSTV_NUM+6+6;
time_to_wrdata();
write(EP1,6);
}
}
}
else
{
powerdown_alllostv_status=ALL_LOSTV_NO;
}
}
else
{
powerdown_alllostv_status=ALL_LOSTV_NO;
}
}
else
{
powerdown_alllostv_status=ALL_LOSTV_NO;
}
}
else{
powerdown_alllostv_status=ALL_LOSTV_NO;
}
// must
quanshiya_tingchao_cishu=0;
}
/************************************************************/
unsigned char powerdown_alllostv_status;
void shangdian()
{//unsigned char hour,day;
unsigned long l;
unsigned char a,a1,a2,l1,l2;
unsigned char value;
unsigned int m1,m2,m3,m5,mdisplay;
unsigned char m4,dn11,*dn12,mday;
unsigned char usedate[7];//,chaobiaoriok;
unsigned char use_reset;
unsigned char time_envent_delay_d0;
unsigned char power_downup_use;
unsigned int iabc[3];
unsigned long v_condition_alllostv;
unsigned long i_condition_alllostv;
unsigned long time_powerdown1,time_powerdown2;
ZHUANCUN_TIME Zhuancun_Time[3];
value=0;
lm75_remain_clk=0;
RAM[R_TEMP]=25;
time_pd51_low=0;
for(a=0;a<10;a++)
RAM[R_PASSWORD_LOCK_NUM_0+a]=0;
use_reset=0;
power_downup_use=0;
shangdianreset:
timenotchanged=0;
num_watch=0;
jiehou_use=0;
status_pd51=1;
time_pd51_low=0;
time_envent_delay_d0=0;
powerup_changedtime_priceswitch=0;
// changed by zhanglong ---->start
// powerdown_alllostv_status=ALL_LOSTV_NO;
// changed by zhanglong ---->end
xuliang_powerreset=1;
time_check7758=0;
//delaynum_5460=0;
value=0;
asm("FCLR I");
prc0=1;
cm05=0;
prc0=0;
pindir_dog=1;
delay_1ms();
watchdog();
delay_1ms();
prc0=1;
cm16=0;
cm17=0;
cm06=0;
cm07=0;
prc0=0;
displayalloroff(0xff);
if(1==tingdian_ack()) goto tingdian_chuli;
for(a=0;a<10;a++)
{
delay_10ms();
watchdog();
}
if(1==tingdian_ack()) goto tingdian_chuli;
data_addr.addri=0x0000;
if(0==read(FM,1))
{
delay_10ms();
if(0==read(EPLOCK,1))
for(a=0;a<20;a++)
{
delay_10ms();
watchdog();
}
}
if(1==tingdian_ack()) goto tingdian_chuli;
for(dn11=0;dn11<7;dn11++)
usedate[dn11]=0;
data_addr.addri=FM_SOFT_SECOND;
if(1==read(FM,7))
for(dn11=0;dn11<7;dn11++)
usedate[dn11]=wr_data[dn11];// shang dian qian shi jian
time_to_bianchengqian();
dn11=0;
if(1==rtc_8025_3time_read()) // qiu fu he qi(chang)
if(1==testsecond_minute_hour_day_month_year(&rtc8025_timevalue[0],&rtc8025_timevalue[4]))
{
dn11=1;
move_rtc8025_to_softrtc();
}
if(dn11==0)
{
if(0==testsecond_minute_hour_day_month_year(&RSOFT_RTC_SECOND,&RSOFT_RTC_DAY))
huifu_use(R_SOFT_SECOND,7);
err_time_envent();
}
RSOFT_RTC_WEEK=week_from_day_month_year(&RSOFT_RTC_DAY);
m3=0;
m4=0;
m1=num_day_form_date(&RSOFT_RTC_DAY);
m2=num_day_form_date(&usedate[4]);
//addd
time_powerdown1=0;
time_powerdown2=0;
if(m1>=m2)
{
time_powerdown1=m1-m2;
time_powerdown1=24*60*time_powerdown1
+60*value_hex_from_bcd(RSOFT_RTC_HOUR)+value_hex_from_bcd(RSOFT_RTC_MINUTE);
time_powerdown2=60*value_hex_from_bcd(usedate[2])+value_hex_from_bcd(usedate[1]);
}
for(a=0;a<10;a++)
bcdaddbuffer[a]=0;
data_addr.addri=FM_BATTERY_WORKTIME;
if(1==read(FM,3))
{
for(a=0;a<3;a++)
bcdaddbuffer[a]=wr_data[a];
}
else
{
for(a=0;a<3;a++)
bcdaddbuffer[a]=RAM[R_BATTERY_WORKTIME+a];
}
if(time_powerdown1>time_powerdown2)
{
long_to_8bcd(time_powerdown1-time_powerdown2,&bcdaddbuffer[5]);
}
byte5_bcdadd_byte5();
for(a=0;a<3;a++)
RAM[R_BATTERY_WORKTIME+a]=bcdaddbuffer[a];
copy_ram_to_fm(R_BATTERY_WORKTIME,3,R_BATTERY_WORKTIME);
if(1==tingdian_ack()) goto tingdian_chuli;
//add
mday=m1-m2;
if(m1==m2)
{
m1=60*value_hex_from_bcd(RSOFT_RTC_HOUR)+value_hex_from_bcd(RSOFT_RTC_MINUTE);
m2=60*value_hex_from_bcd(usedate[2])+value_hex_from_bcd(usedate[1]);
if(m1>m2)
{
m3=(m1-m2)/60;
m4=(m1-m2)%60;
}
}
else
{
if(m1>m2)
{
if((m1-m2)>90)
{
m3=90*24;
m4=0;
}
else
{
m3=24*(m1-m2)+value_hex_from_bcd(RSOFT_RTC_HOUR)-value_hex_from_bcd(usedate[2]);
if(usedate[1]>RSOFT_RTC_MINUTE)
{
m3=m3-1;
m4=60+value_hex_from_bcd(RSOFT_RTC_MINUTE)-value_hex_from_bcd(usedate[1]);
}
else
m4=value_hex_from_bcd(RSOFT_RTC_MINUTE)-value_hex_from_bcd(usedate[1]);
}
}
}
// yue yue cuo fen----------->start
if(mday>60)
mday=60;
data_addr.addri=FM_LOCK_CUOFENGSHIDUAN;
read(FM,5);
for(l1=0;l1<5;l1++)
if(wr_data[l1]>mday)
wr_data[l1]=wr_data[l1]-mday;
else
wr_data[l1]=0;
write(FM,5);
// yue yue cuo fen----------->end
// 90day TIME
data_addr.addri=FM_LOCK_90DAY_TIMER;
if(1==read(FM,2))
{
m5=remain_time(m3,m4,0,wr_data[0]+256*wr_data[1]);
wr_data[0]=m5%256;
wr_data[1]=m5/256;
write(FM,2);
}
// 48 HOUR RUN
data_addr.addri=FM_STATUS_TEST_TIMER;
if(1==read(FM,2))
{
m5=remain_time(m3,m4,1,wr_data[0]+256*wr_data[1]);
wr_data[0]=m5%256;
wr_data[1]=m5/256;
write(FM,2);
}
// 48 hour mima lock
for(a=0;a<10;a++)
{
data_addr.addri=FM_PASSWORD_LOCK_TIME_0+2*a;
if(1==read(FM,2))
{
m5=remain_time(m3,m4,1,wr_data[0]+256*wr_data[1]);
wr_data[0]=m5%256;
wr_data[1]=m5/256;
write(FM,2);
}
}
// xuliang lock 7*24hour
data_addr.addri=FM_TIMER_DEMANGCLFM_LOCK;
if(1==read(FM,2))
{
m5=remain_time(m3,m4,2,wr_data[0]+256*wr_data[1]);
wr_data[0]=m5%256;
wr_data[1]=m5/256;
write(FM,2);
}
copy_ram_to_fm(R_SOFT_SECOND,7,R_SOFT_SECOND);
if(1==tingdian_ack()) goto tingdian_chuli;
one_time_two_table_end(TYPE_FM_POWERDOWNUP_RECORD); // ji suan ting dian shji jian lai dian
power_downup_use=0;
watchdog();
// add by zhanglong ---->start
/*
if(powerdown_alllostv_status==All_LOSTV_YES )
{
powerdown_alllostv_status=ALL_LOSTV_NO;
data_addr.addri=EP1_POWERDOWNALLLOSTV_NUM+6+6;
read(EP1,6);
m1=num_day_form_date(&RSOFT_RTC_DAY);// dangqian data
m2=num_day_form_date(&wr_data[0]);// quanshiya fasheng data
m1=m1-m2; // dangqian data - fasheng data
if(m1<2) // if m1>1 ,err
{
// time_powerdown1 : dangqian time
time_powerdown1=m1;
time_powerdown1=24*60*time_powerdown1
+60*value_hex_from_bcd(RSOFT_RTC_HOUR)+value_hex_from_bcd(RSOFT_RTC_MINUTE);
// time_powerdown2 : quanshiya fasheng shijian
time_powerdown2=60*value_hex_from_bcd(wr_data[5])+value_hex_from_bcd(wr_data[4]);
if (time_powerdown1>time_powerdown2) // if fangsheng shijian > dangqian shijian ,err
{
time_powerdown1=time_powerdown1-time_powerdown2;
if (quanshiya_tingchao_cishu>3)
quanshiya_tingchao_cishu=0;
time_powerdown2=11+quanshiya_tingchao_cishu*4;
if (time_powerdown1<time_powerdown2) // if time_powerdown1>10 ,err
a=time_powerdown1;
quan_shi_ya_end(a);
}
}
}
*/
// add by zhanglong ---->end
huifu_use(R_POWERDOWN_NUM,3);//add
byte_3_bcd_add(R_POWERDOWN_NUM);// num_tingdian
copy_ram_to_fm(R_POWERDOWN_NUM,3,R_POWERDOWN_NUM);
closedr_battery_tingdianchaobiao;
close_battery_tingdianchaobiao;
//add
opendr_battery_quanshiya;
open_battery_quanshiya;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -