У меня есть следующий код:
char switch_list[] = {
"PINB >> 7",
"PIND >> 1",
"PINB >> 1",
"PIND >> 0}"
};
void values(void){
uint8_t switch_value = 0;
if (i == 0){
switch_value = (PINB >> 7) & 1;
}
if (i == 1){
switch_value = (PIND >> 1) & 1;
}
if (i == 2){
switch_value = (PINB >> 1) & 1;
}
if (i == 3){
switch_value = (PIND >> 0) & 1;
}
SOME OTHER OPERATIONS GO HERE
}
Мне нужно как-то интерпретировать значения switch_list как целые числа без знака, но я не могу внести какие-либо изменения в массив (этодолжен остаться массив символов). PINB и другие определили 8-битное значение в библиотеках.Я хотел бы создать цикл for, который будет выглядеть примерно так:
uint8_t switch_value = 0;
for (int i = 0, i < sizeof(switch_list)/sizeof(switch_list[0]); i++){
switch_value = **********[i] & 1;
SOME OTHER OPERATIONS GO HERE
}
}
Где ********* - то же самое, что switch_list , но вместо charтип, это uint8_t .Кто-нибудь может дать какие-нибудь советы?