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

📄 zhuancun.h

📁 嵌入式单片机开发,嵌入式单片机开发,嵌入式单片机开发
💻 H
📖 第 1 页 / 共 2 页
字号:
/*Start of lzh on 2009-2-26 15:30 山东烟台0902*/
	unsigned char dianliang_zhuancun_qingqiu;
	unsigned char xuliang_zhuancun_qingqiu;

typedef struct {
	unsigned char dianliang;
	unsigned char xuliang;
}ZHUANCUN_QINGQIU_TCB;
	
//ZHUANCUN_TCB	Zhuancun_Info[3];
ZHUANCUN_QINGQIU_TCB strZhuancun_qingqiu[3];
//ZHUANCUN_STATE staZhuancun[3];
	
void init_zhuancun()
{

	unsigned char i;
		xuliangqingling_qingqiu = 0;
	for(i=0;i<3;i++)
	{
		strZhuancun_qingqiu[i].dianliang = 0;
		strZhuancun_qingqiu[i].xuliang = 0;
	}
}

/*End of lzh on 2009-2-26 15:30 山东烟台0902*/

unsigned char had_zhuancun(fmaddr,hour,day)  // return 1  no cun   ,0----had cun
unsigned int fmaddr;
unsigned char hour,day;
// fmaddr------fm store    had store (last hour day month)
// hour day------chao biao or 1 day 0  hour 
{
	data_addr.addri=fmaddr;
  	read(FM,3);
  	if((wr_data[0]!=hour)||(wr_data[1]!=day)||(wr_data[2]!=RSOFT_RTC_MONTH)) 	
       	{
       		
      	  		wr_data[0]=hour;
         		wr_data[1]=day;
         		wr_data[2]=RSOFT_RTC_MONTH;
         		write(FM,3);
         		system_use_time=1;   
			return 1;
       	}
 return 0;
}

void zhuancun_use(type_biao,valuestatus,len)
unsigned char type_biao,valuestatus,len;
// type_biao-------------zhuan cun de er ci biao lei xing 
// valuestatus------------zhe ge er ci biao xu zhuan cun de zong ci shu
//                                         example   dian liang  fen 4 kuai, zhi wei 3(0,1,2,3)
// len  ------------------mei kuai de ge shu
{
	unsigned char l1;
	unsigned int l2;
	if(rcurrent_status_zhuancun > valuestatus)
  	{
  		rstatus_zhuan_cun=zhuancun_no;
     	rcurrent_status_zhuancun = 0;
	}
	else
	{// read zhi zhen
		data_addr.addri=current_twobiaofm_block_addr(type_biao,0);
		if(data_addr.addri!=0xffff)
		{
			l2=len;
			l2=l2*rcurrent_status_zhuancun;// offset addr
			data_addr.addri=data_addr.addri+l2;
			for(l1=0;l1<len;l1++)
			{
				wr_data[l1]=zhuancun[l2];// ram[]
				l2++;
			}
				write(EP1,len);
		}
		system_use_time=1;
		rcurrent_status_zhuancun=rcurrent_status_zhuancun+1;
		if(rcurrent_status_zhuancun>valuestatus)
		{
			rstatus_zhuan_cun=zhuancun_no;
			rcurrent_status_zhuancun=0;
		}
	}
}






void zhuancun_dianliang()
{
	unsigned char  ucType;
	switch(Rcurrent_chaobiaori_use)
	{
		case 0:		ucType = TYPE_EP1_HISTROY_KWH;  break;
		case 1:		ucType = TYPE_EP1_HISTROY_KWH2;break;
		case 2:		ucType = TYPE_EP1_HISTROY_KWH3;break;
		default:	ucType = 0xff; break;
 	}
	if(ucType != 0xff)
		zhuancun_use(ucType,3,24);// block 4
}


void zhuancun_xuliang()
{
	unsigned char  ucType;
	switch(Rcurrent_chaobiaori_use)
	{
		case 0:		ucType = TYPE_EP1_HISTROY_KW;  break;
		case 1:		ucType = TYPE_EP1_HISTROY_KW2;break;
		case 2:		ucType = TYPE_EP1_HISTROY_KW3;break;
		default:	ucType = 0xff; break;
 	}
	if(ucType != 0xff)
 		zhuancun_use(ucType,5,28);  // block 6
}
 void zhuancun_xuliangqingling()
{
	zhuancun_use(TYPE_EP1_CLRKWSTOR_RECORD,5,28);// block 6
}

void zhuancun_fuheqi()
{
	zhuancun_use(TYPE_EP1_SEASONCHANGE_RECORD,3,22); // block 4
}





void zhuancun_dianliang_start(hour,day)
unsigned char hour,day;
// hour day------->chao biao ri huo 1 day 0 hour
{unsigned char l;
	unsigned char  ucType;
	
 	for(l=0;l<96;l++)
 		{
 			zhuancun[l]=RAM[R_KWH_F_BAKA+l]; // data--------->
 			wr_data[l]=zhuancun[l];
 		}
	 data_addr.addri=FM_ZHUANCUN_BUFFER;
 	write(FM,96);
	switch(Rcurrent_chaobiaori_use)
	{
		case 0:		ucType = TYPE_EP1_HISTROY_KWH;  break;
		case 1:		ucType = TYPE_EP1_HISTROY_KWH2;break;
		case 2:		ucType = TYPE_EP1_HISTROY_KWH3;break;
		default:	ucType = 0xff; break;
 	}
	if(ucType != 0xff)
	{
 		rzhuancun_tpye_ercibiao = ucType;// zhuan cun de er ci biao
 		next_point(ucType,10);// kuai gun dong  0----->10(left)
  		rstatus_zhuan_cun = zhuancun_yes;
  		rcurrent_status_zhuancun = 0;
	}
}


void zhuancun_clr_xulianguse()
{
unsigned char l,l1;
unsigned int l2;
	for(l2=0;l2<168;l2++)
     		{
     			zhuancun[l2]=RAM[R_KW_F+l2];
 			RAM[R_KW_F+l2]=0;// xu liang qing ling
		}
 	  	 // fm_eeprom    zhu yi   add -----jiao yuan	  (must) 
	copy_ram_to_fm(R_KW_F,168,FM_KW_F);
	for(l=0;l<168;l++)
		wr_data[l]=zhuancun[l];
 	data_addr.addri=FM_ZHUANCUN_BUFFER;
 	write(FM,168);  
  	init_xuliang();
 	system_use_time=1;   
  	rstatus_zhuan_cun = zhuancun_yes;
  	rcurrent_status_zhuancun = 0;
}

void zhuancun_xuliang_start(hour,day)
unsigned char hour,day;
{
	unsigned char  ucType;

	zhuancun_clr_xulianguse();

	switch(Rcurrent_chaobiaori_use)
	{
		case 0:		ucType = TYPE_EP1_HISTROY_KW;  break;
		case 1:		ucType = TYPE_EP1_HISTROY_KW2;break;
		case 2:		ucType = TYPE_EP1_HISTROY_KW3;break;
		default:	ucType = 0xff; break;
 	}
	if(ucType != 0xff)
	{
 	 	rzhuancun_tpye_ercibiao = ucType; 
  		next_point(ucType,10);     
	}
}
void zhuancun_xuliangqingling_start(hour,day)
unsigned char hour,day;
{
	
	zhuancun_clr_xulianguse();  
  	rzhuancun_tpye_ercibiao = TYPE_EP1_CLRKWSTOR_RECORD;//l 2 
  	next_point(TYPE_EP1_CLRKWSTOR_RECORD,4);   
}




void zhuancun_cuofeng(day,hour)
unsigned char day,hour;
{unsigned char l;
	if(1==had_zhuancun(FM_CUOFENG_YICUN,hour,day))
       		{// RU HE PAN DUAN FU CUO FENG----->
     	  		next_point(TYPE_EP1_CUOFENGKWH_RECORD,2);// block num=3
         		data_addr.addri=current_twobiaofm_block_addr(TYPE_EP1_CUOFENGKWH_RECORD,0);
         		if(data_addr.addri!=0xffff)
            			{
            	 			for(l=0;l<45;l++)
            	      				wr_data[l]=RAM[R_CUOFENG_KWH_F+l];        
                			write(EP1,45);//
		  			for(l=0;l<30;l++)
		  				RAM[R_CUOFENG_KW_1+l]=0;                
                			copy_ram_to_fm(R_CUOFENG_KW_1,30,FM_CUOFENG_KW_1);             
              
            			}
     		}
}

// a 0 dianliang 1--yongdianliang 2--xuliang  19 jiance
void shangdiancun_onetime(a,day,hour)
unsigned char a,hour,day;
// a----------------twotabletype
// day hour----------chao biao ri
{unsigned char l,l1,use;
 unsigned int l2;

 	use = 0;
	switch(a)
	{
		case TYPE_EP1_HISTROY_KWH: 
			Rcurrent_chaobiaori_use = 0; 
			use = 0xa5;
			break;
		case TYPE_EP1_HISTROY_KWH2: 
			Rcurrent_chaobiaori_use = 1; 
			use = 0xa5;
			break;
		case TYPE_EP1_HISTROY_KWH3: 
			Rcurrent_chaobiaori_use = 2; 
			use = 0xa5;
			break;
		case TYPE_EP1_HISTROY_KW: 
			Rcurrent_chaobiaori_use = 0; 
			use = 0x5a;
			break;
		case TYPE_EP1_HISTROY_KW2: 
			Rcurrent_chaobiaori_use = 1;
			use = 0x5a;
			break;
		case TYPE_EP1_HISTROY_KW3: 
			Rcurrent_chaobiaori_use = 2; 
			use = 0x5a;
			break;
 		case TYPE_EP1_CUOFENGKWH_RECORD:  // cuo feng
			watchdog();
			zhuancun_cuofeng(day, hour);
			break; 
	}	  	 
	if(use == 0xa5)
	{
		zhuancun_dianliang_start(hour,day);             
		for(l=0;l<4;l++)
		{
			watchdog();
			zhuancun_dianliang();  
		}
		}
	if(use == 0x5a)
	{
		zhuancun_xuliang_start(hour,day);
		for(l=0;l<6;l++)
		{
			watchdog();
			zhuancun_xuliang();
		}                 
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -