📄 dsp28_sci.c
字号:
sci_tx_data[6] = (Fn & 0xFF);
sci_tx_data[7] = (Dp >> 8);
sci_tx_data[8] = (Dp & 0xFF);
sci_tx_data[9] = (Dn >> 8);
sci_tx_data[10] = (Dn & 0xFF);
sci_tx_data[11] = (Np >> 8);
sci_tx_data[12] = (Np & 0xFF);
sci_tx_data[13] = (Nn >> 8);
sci_tx_data[14] = (Nn & 0xFF);
sci_tx_data[15] = (Tp >> 8);
sci_tx_data[16] = (Tp & 0xFF);
sci_tx_data[17] = (Tn >> 8);
sci_tx_data[18] = (Tn & 0xFF);
crc = CRC16(sci_tx_data, 19);
sci_tx_data[19] = HIBYTE(crc);
sci_tx_data[20] = LOBYTE(crc);
sci_tx_num = 21;
break;
}
break;
case 0x10:
switch(address)
{
case 0x0080:
ff = 1; //当ff=1时,接收触摸屏中传过来的数据
Fp = (sci_rx_data[7]<<8) + sci_rx_data[8];
Fn = (sci_rx_data[9]<<8) + sci_rx_data[10];
Dp = (sci_rx_data[11]<<8) + sci_rx_data[12];
Dn = (sci_rx_data[13]<<8) + sci_rx_data[14];
Np = (sci_rx_data[15]<<8) + sci_rx_data[16];
Nn = (sci_rx_data[17]<<8) + sci_rx_data[18];
Tp = (sci_rx_data[19]<<8) + sci_rx_data[20];
Tn = (sci_rx_data[21]<<8) + sci_rx_data[22];
if(Tp != 0) //对接收到的换向期时间进行处理
{
cTp = t[Tp - 10];
}
else
{
cTp = 0;
}
if(Tn != 0)
{
cTn = t[Tn - 10];
}
else
{
cTn = 0;
}
tDp = d[Dp - 3]; //对接收到的占空比的值进行处理,简单的读表
tDn = d[Dn - 3];
cDp = (Uint16)(((unsigned long)f[Fp - 100] * tDp)>>7);
cDn = (Uint16)(((unsigned long)f[Fn - 100] * tDn)>>7);
ff = 3; //对ff赋值为3,为下个周期赋值作准备
break;
}
for(i=0; i<6; i++)
{
sci_tx_data[i] = sci_rx_data[i];
}
crc = CRC16(sci_tx_data, 6);
sci_tx_data[6] = (crc >> 8);
sci_tx_data[7] = (crc & 0x00FF);
sci_tx_num = 8;
break;
}
// 应答
sci_tx_current = 0;
ModbusRTUFrameSend();
}
//===========================================================================
// No more.
//===========================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -