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

📄 overhead.c

📁 单片机程序代码,经过很详细的测试.呵呵,硬件相关.
💻 C
📖 第 1 页 / 共 4 页
字号:
			 				break;
					case 15: outporth=0x06;
		         			outportl=0x2B;
				 			break;
					case 16: outporth=0x06;
	         				outportl=0x4B;
			 				break;
					case 17: outporth=0x06;
			       			outportl=0x6B;
			 				break;
					case 18: outporth=0x06;
	         				outportl=0x8B;
			 				break;
					case 19: outporth=0x06;
		         			outportl=0xAB;
				 			break;
					case 20: outporth=0x06;
	         				outportl=0xCB;
			 				break;
					case 21: outporth=0x06;
					         outportl=0xEB;
							 break;
				    default: break;
				}
				switch (boardid){
					case 1: if (start_flg[1] == 0){
								overhead_value = se0111_reg_rd(outporth,outportl,1);  //2M盘1得到V5中的bit7-5
                        		temp_value = se0111_reg_rd(outporth,outportl-4,1);
								temp_value = (temp_value << 1) & 0x08;                //得到V5中的bit4 RFI
								overhead_value = (overhead_value <<4) | temp_value;
							    return_value = 0;
							}
							else return_value = 2;
							break;
					case 2: if (start_flg[2] == 0){
								overhead_value = se0111_reg_rd(outporth,outportl,2);  //2M盘2得到V5中的bit7-5
		                        temp_value = se0111_reg_rd(outporth,outportl-4,2);
								temp_value = (temp_value << 1) & 0x08;                //得到V5中的bit4 RFI
								overhead_value = (overhead_value <<4) | temp_value;
					    		return_value = 0;
							}
							else return_value = 2;
							break;
					case 3: if (start_flg[3] == 0){
								overhead_value = se0111_reg_rd(outporth,outportl,3);  //2M盘3得到V5中的bit7-5
		                        temp_value = se0111_reg_rd(outporth,outportl-4,3);
								temp_value = (temp_value << 1) & 0x08;                //得到V5中的bit4 RFI
								overhead_value = (overhead_value <<4) | temp_value;
					    		return_value = 0;
							}
							else return_value = 2;
							break;
					default: return_value = 2;
							 break;  
				}
				break;
	default: return_value = 2;
			 break;
	}
	}
	else return_value = 2;
	if (!GetResRdyTbl(12))
		SetResRdyTbl(12); 
	return (return_value);
}


void report_overhead_value(unsigned char value,unsigned char overhead_value){
//C20取开销字节回应函数
unsigned char xdata temp_value;

	tx_buf[0] = '$';
	tx_buf[1] = '2';
	tx_buf[2] = '1';
	tx_buf[3] = 0x43;
	tx_buf[4] = 0x32;
	tx_buf[5] = 0x30;
	tx_buf[6] = '0';
	tx_buf[7] = '0';
	tx_buf[8] = '0';
	tx_buf[9] = '3';
	tx_buf[10] = value+0x30;
	temp_value = (overhead_value >> 4) & 0x0F;
	if (temp_value > 9){
		temp_value = temp_value + 0x37;
	}
	else temp_value = temp_value + 0x30;
	tx_buf[11] = temp_value;
	temp_value = overhead_value & 0x0F;
	if (temp_value > 9){
		temp_value = temp_value + 0x37;
	}
	else temp_value = temp_value + 0x30;
	tx_buf[12] = temp_value;
	tx_buf[13] = '*';
	tx_buf_pointer = 0;	
	while(tx_buf[tx_buf_pointer] != '*'){
		SBUF = tx_buf[tx_buf_pointer];
		while(tx_done == 0);
		tx_done = 0;
		tx_buf_pointer++;
	}
	SBUF = tx_buf[tx_buf_pointer];          //发送最后一个字符'*'
	while(tx_done == 0);
	tx_done = 0;

}



unsigned char set_overhead_value(struct cmd_para_save *set_overhead){
//C21配置开销字节值
unsigned char xdata boardid;
unsigned char xdata portid;
unsigned char xdata timeid;
unsigned char xdata outporth;
unsigned char xdata outportl;
unsigned int  xdata overhead_name;
unsigned char xdata set_value;
unsigned char xdata return_value;
unsigned char xdata temp_value;
unsigned char xdata temp;

	commandid = 0x00433231;
	boardid = set_overhead -> ohset_board;
	portid = set_overhead -> ohset_port;
	timeid = set_overhead -> ohset_slot;
	overhead_name = set_overhead -> ohset_name;
	set_value = set_overhead -> ohset_value;

	if (portid < 22){
	switch (overhead_name){
	case 0x4A30:if (boardid == 4 & start_flg[0] == 0){				 //J0字节光分支盘OTB
					if (portid == 1){                                //光分支7860A口
						f2rc7860_wr(F2SohJ0_tx_a,set_value);
						f2rc7860_wr(F2SohJ0rx_cntr_a,set_value);
						return_value = 0;
					}
					else if (portid == 2){                           //光分支7860B口
						f2rc7860_wr(F2SohJ0_tx_b,set_value);
						f2rc7860_wr(F2SohJ0rx_cntr_b,set_value);
						return_value = 0;
					}
					else return_value = 2;
				 }
				 else if (boardid == 5){                            //主光盘MCB
				  	if (portid == 1){
						SohJ0_tx_a = set_value;
						SohJ0rx_cntr_a = set_value;
						return_value = 0;
					}
					else if (portid == 2){
						SohJ0_tx_b = set_value;
						SohJ0rx_cntr_b = set_value;
						return_value = 0;
					}
					else return_value = 2;
				 }
				 else return_value = 2;
				 break;
	case 0x4B31: if (boardid == 4 & start_flg[0] == 0){				 //K1字节光分支盘OTB
					if (portid == 1){                                //光分支7860A口
						f2rc7860_wr(F2SohK1_tx_a,set_value);
						return_value = 0;
					}
					else if (portid == 2){                           //光分支7860B口
						f2rc7860_wr(F2SohK1_tx_b,set_value);
						return_value = 0;
					}
					else return_value = 2;
				 }
				 else if (boardid == 5){                            //主光盘MCB
				  	if (portid == 1){
						SohK1_tx_a = set_value;
						return_value = 0;
					}
					else if (portid == 2){
						SohK1_tx_b = set_value;
						return_value = 0;
					}
					else return_value = 2;
				 }
				 else return_value = 2;
				 break;
	case 0x4B32: if (boardid == 4 & start_flg[0] == 0){				 //K2字节光分支盘OTB
					if (portid == 1){                                //光分支7860A口
						f2rc7860_wr(F2SohK2_tx_a,set_value);
						return_value = 0;
					}
					else if (portid == 2){                           //光分支7860B口
						f2rc7860_wr(F2SohK2_tx_b,set_value);
						return_value = 0;
					}
					else return_value = 2;
				 }
				 else if (boardid == 5){                            //主光盘MCB
				  	if (portid == 1){
						SohK2_tx_a = set_value;
						return_value = 0;
					}
					else if (portid == 2){
						SohK2_tx_b = set_value;
						return_value = 0;
					}
					else return_value = 2;
				 }
				 else return_value = 2;
				 break;
	case 0x5331: if (boardid == 4 & start_flg[0] == 0){				 //S1字节光分支盘OTB
					if (portid == 1){                                //光分支7860A口
						temp = f2rc7860_rd(F2SohK1K2S1_txs_a);
						temp |= 0x10;
						f2rc7860_wr(F2SohK1K2S1_txs_a,temp);
						f2rc7860_wr(F2SohS1_tx_a,set_value);
						return_value = 0;
					}
					else if (portid == 2){                           //光分支7860B口
						temp = f2rc7860_rd(F2SohK1K2S1_txs_b);
						temp |= 0x10;
						f2rc7860_wr(F2SohK1K2S1_txs_b,temp);
						f2rc7860_wr(F2SohS1_tx_b,set_value);
						return_value = 0;
					}
					else return_value = 2;
				 }
				 else if (boardid == 5){                            //主光盘MCB
				  	if (portid == 1){
						temp = SohK1K2S1_txs_a;
						temp |= 0x10;
						SohK1K2S1_txs_a = temp;
						SohS1_tx_a = set_value;
						return_value = 0;
					}
					else if (portid == 2){
						temp = SohK1K2S1_txs_b;
						temp |= 0x10;
						SohK1K2S1_txs_b = temp;
						SohS1_tx_b = set_value;
						return_value = 0;
					}
					else return_value = 2;
				 }
				 else return_value = 2;
				 break;
	case 0x4332: if (boardid == 4 & start_flg[0] == 0){				 //C2字节光分支盘OTB
					if (portid == 1){                                //光分支7860A口
						f2rc7860_wr(F2PohC2_tx_a,set_value);
						f2rc7860_wr(F2PohC2rx_cntr_a,set_value);
						return_value = 0;
					}
					else if (portid == 2){                           //光分支7860B口
						f2rc7860_wr(F2PohC2_tx_b,set_value);
						f2rc7860_wr(F2PohC2rx_cntr_b,set_value);
						return_value = 0;
					}
					else return_value = 2;
				 }
				 else if (boardid == 5){                            //主光盘MCB
				  	if (portid == 1){
						PohC2_tx_a = set_value;
						PohC2rx_cntr_a = set_value;
						return_value = 0;
					}
					else if (portid == 2){
						PohC2_tx_b = set_value;
						PohC2rx_cntr_b = set_value;
						return_value = 0;
					}
					else return_value = 2;
				 }
				 else return_value = 2;
				 break;
	case 0x4731: if (boardid == 4 & start_flg[0] == 0){				 //G1字节光分支盘OTB
					if (portid == 1){                                //光分支7860A口
						f2rc7860_wr(F2PohG1_tx_a,set_value);
						return_value = 0;
					}
					else if (portid == 2){                           //光分支7860B口
						f2rc7860_wr(F2PohG1_tx_b,set_value);
						return_value = 0;
					}
					else return_value = 2;
				 }
				 else if (boardid == 5){                            //主光盘MCB
				  	if (portid == 1){
						PohG1_tx_a = set_value;
						return_value = 0;
					}
					else if (portid == 2){
						PohG1_tx_b = set_value;
						return_value = 0;
					}
					else return_value = 2;
				 }
				 else return_value = 2;
				 break;
	case 0x4B33: if (boardid == 4 & start_flg[0] == 0){				 //K1字节光分支盘OTB
					if (portid == 1){                                //光分支7860A口
						f2rc7860_wr(F2PohK3_tx_a,set_value);
						return_value = 0;
					}
					else if (portid == 2){                           //光分支7860B口
						f2rc7860_wr(F2PohK3_tx_b,set_value);
						return_value = 0;
					}
					else return_value = 2;
				 }
				 else if (boardid == 5){                            //主光盘MCB
				  	if (portid == 1){
						PohK3_tx_a = set_value;
						return_value = 0;
					}
					else if (portid == 2){
						PohK3_tx_b = set_value;
						return_value = 0;
					}
					else return_value = 2;
				 }
				 else return_value = 2;
				 break;
	case 0x4E31: if (boardid == 4 & start_flg[0] == 0){				 //N1字节光分支盘OTB
					if (portid == 1){                                //光分支7860A口
						f2rc7860_wr(F2PohN1_tx_a,set_value);
						return_value = 0;
					}
					else if (portid == 2){                           //光分支7860B口
						f2rc7860_wr(F2PohN1_tx_b,set_value);
						return_value = 0;
					}
					else return_value = 2;
				 }
				 else if (boardid == 5){                            //主光盘MCB
				  	if (portid == 1){
						PohN1_tx_a = set_value;
						return_value = 0;
					}
					else if (portid == 2){
						PohN1_tx_b = set_value;
						return_value = 0;
					}
					else return_value = 2;
				 }
				 else return_value = 2;
				 break;
	case 0x4B34: switch (portid){                                //K4字节 得出Mapper中的支路号
					case 1: outporth=0x04;//??对应0058,A路B路错误
	        				outportl=0x24;
							break;
					case 2: outporth=0x04;
		        			outportl=0x44;
							break;
					case 3: outporth=0x04;
	        				outportl=0x64;
							break;
					case 4: outporth=0x04;
		        			outportl=0x84;
							break;
					case 5: outporth=0x04;
	        				outportl=0xA4;
							break;
					case 6: outporth=0x04;
		        			outportl=0xC4;
							break;
					case 7: outporth=0x04;
	        				outportl=0xE4;

⌨️ 快捷键说明

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