Ох ох ох опять возникла проблема опять долго не могу ее устранить.
Есть структура, описана в .h файле.
Код
typedef struct {
uint8_t Enable;
uint8_t Module_IntAddr;
uint8_t NumChannel;
uint8_t MODBUS_Addr;
uint8_t MODBUS_Func;
uint16_t FirsAddr;
uint16_t AmountNum;
uint16_t TimeOut;
uint16_t SettingAmounOk;
} MBr_In_Type;
И в .с файле
Код
In->NumChannel = 0;
In->MODBUS_Addr = 3;
In->MODBUS_Func = 4;
In->FirsAddr = 6;
In->AmountNum = 12;
In->TimeOut = 12;
In->SettingAmounOk = 5;
FB_MODBUS_Buffer[0] = In->MODBUS_Addr;
FB_MODBUS_Buffer[1] = In->MODBUS_Func;
FB_MODBUS_Buffer[2] = In->FirsAddr >> 8;
FB_MODBUS_Buffer[3] = In->FirsAddr & 0xFF;
FB_MODBUS_Buffer[4] = In->AmountNum >> 8;
FB_MODBUS_Buffer[5] = In->AmountNum & 0xFF;
CRCmb = crc16 (FB_MODBUS_Buffer, 8);
FB_MODBUS_Buffer[6] = (uint8_t)CRCmb;
FB_MODBUS_Buffer[7] = (uint8_t)(CRCmb >>8);
CreateNewOutPacket(FBPacket, PacketWaitSend, In->NumChannel, 8, FB_MODBUS_Buffer, 7);
Так вот когда я в функцию CreateNewOutPacket в область In->TimeOut пишу цифру, например 7, то декремент доходит до 0. Если я ссылаюсь на элемент структуры вот так
CreateNewOutPacket(FBPacket, PacketWaitSend, In->NumChannel, 8, FB_MODBUS_Buffer, In->TimeOut); то декремент идет вечно.