📄 backup6.c
字号:
while(((CAN2->TSR>>26)& 0x07) == 0);
CAN_Transmit(CAN2, &TxMessage);
}
if(OutputAddr[1] != 0)
{
for(i=0;i<4;i++)
TxMessage.Data[i] = OutputSet[i+4];
TxMessage.StdId = OutputAddr[1];
while(((CAN2->TSR>>26)& 0x07) == 0);
CAN_Transmit(CAN2, &TxMessage);
}
if(OutputAddr[2] != 0)
{
for(i=0;i<4;i++)
TxMessage.Data[i] = OutputSet[i+8];
TxMessage.StdId = OutputAddr[2];
while(((CAN2->TSR>>26)& 0x07) == 0);
CAN_Transmit(CAN2, &TxMessage);
}
if(OutputAddr[3] != 0)
{
for(i=0;i<4;i++)
TxMessage.Data[i] = OutputSet[i+12];
TxMessage.StdId = OutputAddr[3];
while(((CAN2->TSR>>26)& 0x07) == 0);
CAN_Transmit(CAN2, &TxMessage);
}
if(OutputAddr[4] != 0)
{
for(i=0;i<4;i++)
TxMessage.Data[i] = OutputSet[i+16];
TxMessage.StdId = OutputAddr[4];
while(((CAN2->TSR>>26)& 0x07) == 0);
CAN_Transmit(CAN2, &TxMessage);
}
h=0;
for(i=304;i<311;i++) //输出通道增益设置数据
{
OutputGainSet[h] = ReadEEPData[i];
h++;
}
SyncMode = ReadEEPData[310]; //同步模式
}
/////////////////////////////// *** 恢复临时场景 *** ////////////////////////////////////
if(SceneDelFlag)
{
SceneDelFlag = 0;
I2C_EE_BufferRead(TempKeyState,EEP_TempKeyState_Address,20);//读取上一时刻按键状态
I2C_EE_BufferRead(ReadEEPData,EEP_TempScene_Address,271); //读取临时状态
h = 0;
L = 0;
for(i=0;i<240;i++) //输入通道状态设置数据
{
InputState[L][h] = ReadEEPData[i];
h++;
if(h%12==0)
{
L++;
h=0;
}
}
if(TuiziAddr[0] != 0) //地址1推子
{
TxMessage.RTR = CAN_RTR_DATA;
TxMessage.IDE = CAN_ID_STD;
TxMessage.DLC = 8;
TxMessage.StdId = TuiziAddr[0];
for(i=0;i<4;i++)
{
TxMessage.Data[0] = (InputState[i][7]<<4)|(i+1); //高4位信号格式,低4位数据包编号
TxMessage.Data[1] = InputState[i][8]; //输入模块地址
for(h=2;h<8;h++)
TxMessage.Data[h] = InputState[i][h-1]; //6字节汉字码
while(((CAN1->TSR>>26)& 0x07) == 0);
CAN_Transmit(CAN1, &TxMessage);
}
//=== 初始化上一时刻按键状态 ===//
TxMessage.RTR = CAN_RTR_DATA;
TxMessage.IDE = CAN_ID_STD;
TxMessage.DLC = 4;
TxMessage.StdId = 0x101;
for(i=0;i<4;i++)
{
TxMessage.Data[i] = TempKeyState[i];
KeyDataBK[i] = TempKeyState[i];
}
while(((CAN1->TSR>>26)& 0x07) == 0);
CAN_Transmit(CAN1, &TxMessage);
}
if(TuiziAddr[1] != 0) //地址2推子
{
TxMessage.RTR = CAN_RTR_DATA;
TxMessage.IDE = CAN_ID_STD;
TxMessage.DLC = 8;
TxMessage.StdId = TuiziAddr[1];
for(i=4;i<8;i++)
{
TxMessage.Data[0] = (InputState[i][7]<<4)|(i-3); //高4位信号格式,低4位数据包编号
TxMessage.Data[1] = InputState[i][8];
for(h=2;h<8;h++)
TxMessage.Data[h] = InputState[i][h-1];
while(((CAN1->TSR>>26)& 0x07) == 0);
CAN_Transmit(CAN1, &TxMessage);
}
//=== 初始化上一时刻按键状态 ===//
TxMessage.RTR = CAN_RTR_DATA;
TxMessage.IDE = CAN_ID_STD;
TxMessage.DLC = 4;
TxMessage.StdId = 0x201;
for(h=0,i=4;i<8;i++)
{
TxMessage.Data[h++] = TempKeyState[i];
KeyDataBK[i] = TempKeyState[i];
}
while(((CAN1->TSR>>26)& 0x07) == 0);
CAN_Transmit(CAN1, &TxMessage);
}
if(TuiziAddr[2] != 0) //地址3推子
{
TxMessage.RTR = CAN_RTR_DATA;
TxMessage.IDE = CAN_ID_STD;
TxMessage.DLC = 8;
TxMessage.StdId = TuiziAddr[2];
for(i=8;i<12;i++)
{
TxMessage.Data[0] = (InputState[i][7]<<4)|(i-7); //高4位信号格式,低4位数据包编号
TxMessage.Data[1] = InputState[i][8];
for(h=2;h<8;h++)
TxMessage.Data[h] = InputState[i][h-1];
while(((CAN1->TSR>>26)& 0x07) == 0);
CAN_Transmit(CAN1, &TxMessage);
}
//=== 初始化上一时刻按键状态 ===//
TxMessage.RTR = CAN_RTR_DATA;
TxMessage.IDE = CAN_ID_STD;
TxMessage.DLC = 4;
TxMessage.StdId = 0x301;
for(h=0,i=8;i<12;i++)
{
TxMessage.Data[h++] = TempKeyState[i];
KeyDataBK[i] = TempKeyState[i];
}
while(((CAN1->TSR>>26)& 0x07) == 0);
CAN_Transmit(CAN1, &TxMessage);
}
if(TuiziAddr[3] != 0) //地址4推子
{
TxMessage.RTR = CAN_RTR_DATA;
TxMessage.IDE = CAN_ID_STD;
TxMessage.DLC = 8;
TxMessage.StdId = TuiziAddr[3];
for(i=12;i<16;i++)
{
TxMessage.Data[0] = (InputState[i][7]<<4)|(i-11); //高4位信号格式,低4位数据包编号
TxMessage.Data[1] = InputState[i][8];
for(h=2;h<8;h++)
TxMessage.Data[h] = InputState[i][h-1];
while(((CAN1->TSR>>26)& 0x07) == 0);
CAN_Transmit(CAN1, &TxMessage);
}
//=== 初始化上一时刻按键状态 ===//
TxMessage.RTR = CAN_RTR_DATA;
TxMessage.IDE = CAN_ID_STD;
TxMessage.DLC = 4;
TxMessage.StdId = 0x401;
for(h=0,i=12;i<16;i++)
{
TxMessage.Data[h++] = TempKeyState[i];
KeyDataBK[i] = TempKeyState[i];
}
while(((CAN1->TSR>>26)& 0x07) == 0);
CAN_Transmit(CAN1, &TxMessage);
}
if(TuiziAddr[4] != 0) //地址5推子
{
TxMessage.RTR = CAN_RTR_DATA;
TxMessage.IDE = CAN_ID_STD;
TxMessage.DLC = 8;
TxMessage.StdId = TuiziAddr[4];
for(i=16;i<20;i++)
{
TxMessage.Data[0] = (InputState[i][7]<<4)|(i-15); //高4位信号格式,低4位数据包编号
TxMessage.Data[1] = InputState[i][8];
for(h=2;h<8;h++)
TxMessage.Data[h] = InputState[i][h-1];
while(((CAN1->TSR>>26)& 0x07) == 0);
CAN_Transmit(CAN1, &TxMessage);
}
//=== 初始化上一时刻按键状态 ===//
TxMessage.RTR = CAN_RTR_DATA;
TxMessage.IDE = CAN_ID_STD;
TxMessage.DLC = 4;
TxMessage.StdId = 0x501;
for(h=0,i=16;i<20;i++)
{
TxMessage.Data[h++] = TempKeyState[i];
KeyDataBK[i] = TempKeyState[i];
}
while(((CAN1->TSR>>26)& 0x07) == 0);
CAN_Transmit(CAN1, &TxMessage);
}
for(h=0,i=240;i<244;i++)
HotFireSet[h++] = ReadEEPData[i];
for(h=0,i=244;i<264;i++)
OutputSet[h++] = ReadEEPData[i];
for(h=0,i=264;i<271;i++)
OutputGainSet[h++] = ReadEEPData[i];//(OutputGainSet[6]为一个字节SyncMode)
SyncMode = OutputGainSet[6];
}
/////////////////////////////////////////////////////////////////////////////////////////
//原来场景程序:
///////////////////////////////// ***场景*** ///////////////////////////////////////
u8 ScenInputState[20][12] = {0};//场景设置中的输入状态
u8 ScenHotFireSet[4] = {0}; //场景设置中的热线地址
u8 ScenOutputSet[20] = {0}; //场景设置中的输出通道设置
u8 ScenOutputGainSet[7] = {0}; //场景设置中的输出通道增益设置(还包含一个字节SyncMode)
u8 ScenSyncMode = 0; //场景设置中的同步模式
extern u8 ScenKeyState[20]; //场景设置中的按键状态
extern u8 ScenEffectState[20]; //场景设置中"设置"按键对应的效果
extern u8 ScenInputState[20][12];//场景设置中的输入状态
extern u8 ScenHotFireSet[4]; //场景设置中的热线地址
extern u8 ScenOutputSet[20]; //场景设置中的输出通道设置
extern u8 ScenOutputGainSet[7]; //场景设置中的输出通道增益设置(还包含一个字节SyncMode)
extern u8 ScenSyncMode; //场景设置中的同步模式
for(j=0,k=0;j<40;j++)
{
ScenKeyState[k] = revdata[j++]; //按键状态
ScenEffectState[k] = revdata[j]; //"设置"键对应的效果
k++;
}
u=0;k=0;
for(j=40;j<280;j++) //输入通道状态设置数据
{
ScenInputState[k][u] = revdata[j];
u++;
if(u%12==0)
{
k++;
u=0;
}
}
u=0;
for(j=280;j<284;j++) //热线设置数据
{
ScenHotFireSet[u] = revdata[j];
u++;
}
u=0;
for(j=284;j<304;j++) //输出通道状态设置数据
{
ScenOutputSet[u] = revdata[j];
u++;
}
u=0;
for(j=304;j<311;j++) //输出通道增益设置数据
{
ScenOutputGainSet[u] = revdata[j];
u++;
}
ScenSyncMode = revdata[310]; //同步模式
///////////////////////////////////////////////////////////////////////////////
//原来临时场景程序:
///////////////////////////////////////////////////////////////////////////////
// printf("\nThe InputState data : \n");
I2C_EE_BufferRead(ReadEEPData,EEP_InputState_Address,240);
h = 0;
L = 0;
for(i=0;i<240;i++) //输入通道状态设置数据
{
InputState[L][h] = ReadEEPData[i];
h++;
if(h%12==0)
{
L++;
h=0;
}
}
I2C_EE_BufferRead(ReadEEPData,EEP_HotFire_Address,4);
for(i=0;i<4;i++)
HotFireSet[i] = ReadEEPData[i];
I2C_EE_BufferRead(ReadEEPData,EEP_OutputSet_Address,20);
for(i=0;i<20;i++)
OutputSet[i] = ReadEEPData[i];
I2C_EE_BufferRead(ReadEEPData,EEP_OutputGain_Address,7);
for(i=0;i<7;i++)
OutputGainSet[i] = ReadEEPData[i]; //(OutputGainSet[6]为一个字节SyncMode)
SyncMode = OutputGainSet[6];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -