ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
16 апреля
901933 Топик полностью
BioWolf2000 (05.02.2019 16:28, просмотров: 89) ответил michas на Есть переменная (регистр модбас) который пишется и читается из внешнего источника. Его надо засинхронизировать с переменной, которая аналогично читается и меняется из другого источника (элемент меню). Как правильно делать такие вещи?
я в union храню typedef union __attribute__((packed)) mbRegCoil_t { uint8_t Buf[REG_COILS_COUNT / 8 + 1]; //1 struct { #define ADDR_StopAnyActionCommand 1 uint16_t StopAnyActionCommand : 1; #define ADDR_StartCalibrationCommand 2 uint16_t StartCalibrationCommand : 1; #define ADDR_StartMeasurementCommand 3 uint16_t StartMeasurementCommand : 1; ... }; } mbRegCoil_t; typedef union __attribute__((packed)) mbRegInput_t { uint16_t Buf[REG_INPUT_COUNT]; //30001 struct { uint16_t ProductCode; //30001 uint16_t HWVersion; //30002 uint16_t SWVersion; //30003 union { uint32_t UID32; uint16_t UID[2]; //30004-30005 } ; ... }; } mbRegInput_t; mbRegInput_t mbRegInput; Modbus работает с mbRegInput.Buf, а остальная программа с mbRegInput.ProductCode например