⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 嵌入式单片机开发,嵌入式单片机开发,嵌入式单片机开发
💻 C
📖 第 1 页 / 共 4 页
字号:
		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 + -