在 C 中合并数组中的位变量
Merge bit variables in array in C
我正在开发 8051 微控制器平台,KEIL 为 IDE,C 为编程语言。
我正在尝试创建用于开关功能的位数组。
sbit P1;
sbit P2;
sbit P3;
buttons [2:0] = P1 | P2 | P3
switch (buttons[2:0])
{
case 0x1: //First button is pressed
case 0x2: //Second button is pressed
case 0x4: //Third is pressed
default: //Multiple buttons are pressed. Hence invalid
}
我找不到将位组合成单个实体并将其用于开关功能的方法。
任何人都可以建议以任何可能的方法完成任务。
我终于找到了解决问题的方法。
int buttons=0x00;
buttons = ((0xFF & !P1) << 2) | ((0xFF & !P2) << 1) | ((0xFF & !P3) << 0);
我正在开发 8051 微控制器平台,KEIL 为 IDE,C 为编程语言。
我正在尝试创建用于开关功能的位数组。
sbit P1;
sbit P2;
sbit P3;
buttons [2:0] = P1 | P2 | P3
switch (buttons[2:0])
{
case 0x1: //First button is pressed
case 0x2: //Second button is pressed
case 0x4: //Third is pressed
default: //Multiple buttons are pressed. Hence invalid
}
我找不到将位组合成单个实体并将其用于开关功能的方法。
任何人都可以建议以任何可能的方法完成任务。
我终于找到了解决问题的方法。
int buttons=0x00;
buttons = ((0xFF & !P1) << 2) | ((0xFF & !P2) << 1) | ((0xFF & !P3) << 0);