📄 eeprom.c
字号:
case 0x08:{
i=uart1_rxbw[3]-4;
j=0;
switch (uart1_rxbw[5])
{
case 0x00:
while (i!=0)
{
yc_fm_para0(eep_rx_count++)=uart1_rxbw[j+8];
i--;
j++;
}
if (uart1_rxbw[7]==0x55)
{
eeprom_ram[eep_in_count++]=(unsigned int)&yc_fm_para0(0);
eeprom_ram[eep_in_count++]=(eep_rx_count+31)/32;
eep_rx_count=0;
}
break;
case 0x01:
while (i!=0)
{
yc_fm_para1(eep_rx_count++)=uart1_rxbw[j+8];
i--;
j++;
}
if (uart1_rxbw[7]==0x55)
{
eeprom_ram[eep_in_count++]=(unsigned int)&yc_fm_para1(0);
eeprom_ram[eep_in_count++]=(eep_rx_count+31)/32;
eep_rx_count=0;
}
}
rxbw_ok();
break;
}
// 下装遥信发码数据
case 0x09:{
i=uart1_rxbw[3]-4;
j=0;
switch (uart1_rxbw[5])
{
case 0x00:
while (i!=0)
{
yx_fm_para0(eep_rx_count++)=uart1_rxbw[j+8];
i--;
j++;
}
if (uart1_rxbw[7]==0x55)
{
eeprom_ram[eep_in_count++]=(unsigned int)&yx_fm_para0(0);
eeprom_ram[eep_in_count++]=(eep_rx_count+31)/32;
eep_rx_count=0;
}
break;
case 0x01:
while (i!=0)
{
yx_fm_para1(eep_rx_count++)=uart1_rxbw[j+8];
i--;
j++;
}
if (uart1_rxbw[7]==0x55)
{
eeprom_ram[eep_in_count++]=(unsigned int)&yx_fm_para1(0);
eeprom_ram[eep_in_count++]=(eep_rx_count+31)/32;
eep_rx_count=0;
}
}
rxbw_ok();
break;
}
// 下装电度发码数据
case 0x0a:{
i=uart1_rxbw[3]-4;
j=0;
switch (uart1_rxbw[5])
{
case 0x00:
while (i!=0)
{
dd_fm_para0(eep_rx_count++)=uart1_rxbw[j+8];
i--;
j++;
}
if (uart1_rxbw[7]==0x55)
{
eeprom_ram[eep_in_count++]=(unsigned int)&dd_fm_para0(0);
eeprom_ram[eep_in_count++]=(eep_rx_count+31)/32;
eep_rx_count=0;
}
break;
case 0x01:
while (i!=0)
{
dd_fm_para1(eep_rx_count++)=uart1_rxbw[j+8];
i--;
j++;
}
if (uart1_rxbw[7]==0x55)
{
eeprom_ram[eep_in_count++]=(unsigned int)&dd_fm_para1(0);
eeprom_ram[eep_in_count++]=(eep_rx_count+31)/32;
eep_rx_count=0;
}
break;
}
rxbw_ok();
break;
}
// 上传串口发码遥测数据
case 0x10:{
yc_len = uart1_rxbw[4] * 128;
for(j=0;j<=7;j++)
{
uart1_txbw[j] = uart1_rxbw[j];
}
uart1_txbw[3] = 132;
/*switch(uart1_rxbw[5])
{
case 0x00:{
for(j=0;j<128;j++)
{
uart1_txbw[j+8] = yc_3l_0(j+yc_len);
}
break;
}
case 0x01:{
for(j=0;j<128;j++)
{
uart1_txbw[j+8] = yc_3l_1(j+yc_len);
}
break;
}
}*/
bwlen = 136;
check_LPC1 = check_LPC2 = 0;
uart1_txcheck();
uart1_txbw[bwlen] = check_LPC1;
uart1_txbw[bwlen+1] = check_LPC2;
tc1 = uart1_txbw[3]+6;
txc = 0;
SSR1_TIE = 1;
break;
}
// 上传串口发码遥信数据
case 0x16:{
for(j=0;j<=7;j++)
{
uart1_txbw[j] = uart1_rxbw[j];
}
switch(uart1_rxbw[5])
{
case 0x00:{
yx_len = com0_para(13);
uart1_txbw[3] = yx_len+4;
for(j=0;j<yx_len;j++)
{
uart1_txbw[j+8] = yx_3l_0(j);
}
break;
}
case 0x01:{
yx_len = com1_para(13);
uart1_txbw[3] = yx_len+4;
for(j=0;j<yx_len;j++)
{
uart1_txbw[j+8] = yx_3l_1(j);
}
break;
}
}
bwlen = uart1_txbw[3]+4;
check_LPC1 = check_LPC2 = 0;
uart1_txcheck();
uart1_txbw[bwlen] = check_LPC1;
uart1_txbw[bwlen+1] = check_LPC2;
tc1 = uart1_txbw[3]+6;
txc = 0;
SSR1_TIE = 1;
break;
}
}
}
else
{
rxbw_no();
}
bwlen = 0;
uart1_rc = 0;rc1 = 0;
}
}
}
}
}
void uart1_rxcheck(void)
{
IO_BYTE j;
for(j=0;j<bwlen;j++)
{
check_LPC1 = check_LPC1 ^ uart1_rxbw[j];
check_LPC2 = check_LPC2 + uart1_rxbw[j];
}
}
void uart1_txcheck(void)
{
IO_BYTE j;
for(j=0;j<bwlen;j++)
{
check_LPC1 = check_LPC1 ^ uart1_txbw[j];
check_LPC2 = check_LPC2 + uart1_txbw[j];
}
}
void rxbw_ok(void)
{
unsigned char j;
for(j=0;j<10;j++)
{
uart1_txbw[j] = right_bw[j];
}
tc1 = uart1_txbw[3]+6;
txc = 0;
SSR1_TIE = 1;
}
void rxbw_no(void)
{
IO_BYTE j;
for(j=0;j<10;j++)
{
uart1_txbw[j] = error_bw[j];
}
tc1 = uart1_txbw[3]+6;
txc = 0;
SSR1_TIE = 1;
}
__interrupt void Uart1_Rx_int()
{
// __DI();
if((SSR1_RDRF==1)&&(SSR1_ORE==0)&&(SSR1_PE==0))
{
uart1_rxbw[rc1] = SIDR1;
rc1++;uart1_rc++;
bwlen = rc1;
}
else
SCR1_REC = 0;
if (rc1>=150)
{
rc1=0;
uart1_rc=0;
bwlen=0;
}
uart1_rtime = 0;
// __EI();
}
__interrupt void Uart1_Tx_int()
{
// __DI();
if ( SSR1_TDRE == 1 )
{
if (tc1!=0)
{
SODR1 = uart1_txbw[txc];
txc++;
tc1--;
}
else
{
SSR1_TIE=0;
}
}
// __EI();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -