Моя функция, чтобы получить бит:
extern volatile unsigned char Temp @ 0x036;
extern volatile __bit W @ (((unsigned) &Temp)*8) + 4;
void get_bit(volatile unsigned char *reg, unsigned num) {
W = (*reg & (1 << num));
}
Основная функция:
int main() {
volatile unsigned char ch = 0b00001000;
get_bit(&ch, 4);
}
Когда я компилирую этот код блоков, я получаю сообщение об ошибке (ошибка: синтаксис выражения).
Что я могу сделать, чтобы решить эту проблему?
W
(и где оно определено?)? - person Eugene Sh.   schedule 06.07.2017volatile int W;
, и получил чистую компиляцию и выполнение от MSVC. - person Weather Vane   schedule 06.07.2017W
. Он определяется с использованием специального синтаксиса XC8. Для тестирования попробуйте определить его как в стандартном C, что-то вродеint W;
. - person Eugene Sh.   schedule 06.07.2017extern
вещей. Эти мне кажутся подозрительными. - person Eugene Sh.   schedule 06.07.2017