Обсуждаем контроллеры компании Atmel.
Ответить

Как проще прочитать один бит из регистра? (Си)

Ср сен 22, 2021 18:14:57

Можно вычислить сумму регистра, но это отнимает время. Как быстро и универсально прочитать один бит из регистра в среде программирования Си?

Re: Как проще прочитать один бит из регистра? (Си)

Ср сен 22, 2021 20:25:07

считываешь регистр и накладываешь битовую маску.

Re: Как проще прочитать один бит из регистра? (Си)

Ср сен 22, 2021 21:31:27

Смотря для чего читать бит.

Самый простоя вариант накладываем маску
но, существует и другой способ
Достаточно исчерпывающий ответ?

Re: Как проще прочитать один бит из регистра? (Си)

Ср сен 22, 2021 21:51:59

Битовые поля - хуже, т.к. не факт, что компилятор развернет поле в считывание и наложение маски.

Re: Как проще прочитать один бит из регистра? (Си)

Ср сен 22, 2021 22:13:18

Eddy_Em писал(а):Битовые поля - хуже,
Смотря какая конечная цель.
Eddy_Em писал(а):т.к. не факт, что компилятор развернет поле в считывание и наложение маски
а мне все равно во что он разворачивает, главное что бы разворачивал так, как мне нужно.

Re: Как проще прочитать один бит из регистра? (Си)

Чт сен 23, 2021 13:30:38

Dimon456, спасибо.

Re: Как проще прочитать один бит из регистра? (Си)

Чт сен 23, 2021 13:37:33

в "среде" программирования на Си под названием avr-gcc, например, давно все встроено, есть набор макросов для чтения битов
bit_is_set
bit_is_clear
ну а запись битов - это обычная операция И или ИЛИ

Re: Как проще прочитать один бит из регистра? (Си)

Чт сен 23, 2021 18:31:53

ARV, да, проще уже некуда. Спасибо. :)
Ответить