Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
03.08.2007, 11:37
|
|
Прописка
Регистрация: 08.06.2006
Сообщений: 215
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
Битовые функции в CodeVision
Добрый день.
Есть переменная, к примеру –Per
Необходимо определить значения битов в переменной.
Per.0, Per.1, Per.2, Per.3, Per.4, Per.5, Per.6, Per.7
Вопрос: Есть ли CodeVision готовая функция для работы с битами или нужно писать самому?
|
|
|
|
03.08.2007, 11:51
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,948
Сказали Спасибо 1,327 раз(а) в 578 сообщении(ях)
|
Re: Битовые функции в CodeVision
Сообщение от Andrewg
|
Есть переменная, к примеру –Per
Необходимо определить значения битов в переменной.
Per.0, Per.1, Per.2, Per.3, Per.4, Per.5, Per.6, Per.7
|
Не знаю как в Codevision, а в IAR я делаю так:
Код:
|
volatile union
{
char Per;
struct
{
unsigned char PerB0:1;
unsigned char PerB1:1;
unsigned char PerB2:1;
unsigned char PerB3:1;
unsigned char PerB4:1;
unsigned char PerB5:1;
unsigned char PerB6:1;
unsigned char PerB7:1;
};
}; |
|
|
|
|
03.08.2007, 11:58
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
Код:
|
#define Bit(n) (1 ‹‹ (n))
#define galka 1
#define vpravo 2
unsigned char bit_mas;
bit_mas&=~Bit(galka); // обнулить 1 бит
bit_mas|=Bit(vpravo); // в 1 2 бит
if ((bit_mas&Bit(vpravo)) != 0)// проверить 2 бит |
|
|
|
|
03.08.2007, 12:19
|
|
Прописка
Регистрация: 08.06.2006
Сообщений: 215
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
Сообщение от urry
|
Код:
|
#define Bit(n) (1 ‹‹ (n))
#define galka 1
#define vpravo 2
unsigned char bit_mas;
bit_mas&=~Bit(galka); // обнулить 1 бит
bit_mas|=Bit(vpravo); // в 1 2 бит
if ((bit_mas&Bit(vpravo)) != 0)// проверить 2 бит |
|
Всё понял. Спасибо! Уже опробовал.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 17:23.
|
|