我有两个对讲机每半秒来回发送数据。 周期性地是一个错误、它会停止客户端上运行的代码。 每次它停止时、调试器都会报告一个较大的整数。
易失性 uint joinSwitchFlag = 0;
该 uint 只会被分配为1或0。 它可以分配两个位置。 第一个是 ISR:
#pragma vector = TIMER3_B0_vector _中断 void 去抖(void) { TB3CCTL0 &=~CCIE; if (joinSwitchFlag = 1) joinSwitchFlag = 0; 其他 joinSwitchFlag = 1; flags.swlockout = F; P1IE |= BIT2; LPM3_EXIT; }
第二个位置在代码内,它在一个加入过程后被分配为0。。 对讲机的工作如下...对讲机在加入信道上通信一次、成功通信/接受后、对讲机将更改其 ID 并移动到数据信道。 这些是 MSP 中当前的硬编码数字、并根据需要加载到无线电中、以便在每个通道上进行通信。 一旦进入数据信道、对讲机不应再次移动到加入。 代码必须有错误、因为客户端似乎总是在某个点移动到联接。 我的问题是、该变量如何可能是0或1以外的值? 我缺少什么或调试器只是拧紧了???
谢谢

