位屏蔽数组的索引,Arduino环境

Bit*_*rex 1 c arduino bitmask

我试图从一个结构中取一个16位无符号整数,屏蔽它的前8位,然后用它作为一个带有函数analogWrite的数组的索引,该函数将Arduino上的输出引脚和输出字节作为参数.有问题的代码看起来像这样:analogWrite(outputPin, my_array[myStructure->data & 0xFF00 >> 8]);

不幸的是,这段代码不起作用.我总是把零作为输出.有任何想法吗?

Tim*_*ter 5

运算符优先级.

这个:

myStructure->data & 0xFF00 >> 8
Run Code Online (Sandbox Code Playgroud)

相当于:

myStructure->data & (0xFF00 >> 8)
Run Code Online (Sandbox Code Playgroud)

但你想要:

(myStructure->data & 0xFF00) >> 8
Run Code Online (Sandbox Code Playgroud)