首先在PFC程序中定义了一个故障标志结构体变量SystemFaultFlag,后级通过一个光耦传递一个硬件故障位给PFC,程序中是这么写的
...
#define LLCFaultState GpioDataRegs.GPADAT.bit.GPIO13
...
PFC程序直接利用位域操作进行赋值:
SystemFaultFlag.bit.LLCFault = LLCFaultState;
这样程序执行异常(这个硬件位实际却是存在干扰),PFC无端关闭驱动,但是没有任何标志位,改用if条件语句判断之后,能够正常执行。
DSP用的28035
请问,这样操作有什么问题?位域操作是怎么编译的?有没有相应的手册?