在我的 AVR 上,我有一个字符数组,它们以 {R,G,B,x,R,G,B,x,...} 的形式保存颜色强度信息(x 是未使用的字节)。有什么简单的方法可以写一个 long int(32 位),char myArray[4*LIGHTS]
这样我就可以轻松地写一个 0x00BBGGRR 数字?
我的类型转换很粗糙,我不知道该怎么写。我猜只是创建一个指向 long int 类型的指针并将其设置为等于 myArray,但是我不知道如何任意告诉它将组 x 设置为 myColor。
uint8_t myLights[4*LIGHTS];
uint32_t *myRGBGroups = myLights; // ?
*myRGBGroups = WHITE; // sets the first 4 bytes to WHITE
// ...but how to set the 10th group?
编辑:我不确定类型转换是否是正确的术语,因为我认为如果它只是将 32 位数字截断为 8 位?