Реклама на сайте | Помощь сайту   English version | Free likes 
KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Вопросы и ответы по программированию на C для микроконтроллеров PIC.

Вопрос   Что такое перемeнная типа bit?

Ответ  Ответ: Наверх [Вернуться в категорию "Вопросы и ответы по программированию на C для микроконтроллеров PIC."]

Среди типов, разрешенных к использованию, есть битовые переменные. Для их хранения компилятор создает специальную секцию rbit_n (где n - номер банка памяти). Применение битовых переменных очень удобно для представления двоичных флагов, но существуют некоторые ограничения. Значение ее может быть 0 или 1. Битовая переменная не может быть класса auto и не может быть параметром функции, но функция может возвращать переменные битового типа. Нельзя объявлять указатель на битовую переменную и выполнять статическую инициализацию (то есть нельзя объявить bit test_flag = 1; это ошибка), инициализацию нужно выполнять в начале вашего кода. Если битовой переменной присваивают значение переменной другого типа, из нее берется только младший значащий бит. При объявлении внутри функции обязательно применение ключевого слова static, а при объявлении вне функции - нет.

bit my_flag; // объявление глобальной битовой переменной

void main (void)
{
static bit flag; // объявление внутри функции
. . .

. . .
}

Битовые переменные обнуляются автоматически по старту программы при исполнении начального кода, который всегда генерирует компилятор.
Эффективно ли использование битовых переменных? Однозначно, да. В один регистр компилятор упаковывает до 8 битовых переменных, значит на восемь флагов тратится только один байт. Проигрываем ли мы в скорости? Нет, так как процессор имеет эффективные команды изменения и проверки одиночных битов.

[Вопросы и ответы по программированию на C для микроконтроллеров PIC.]

Новости
[06/02/2019] Конференция в МГТУ им. Баумана «Технологии разработки и отладки сложных технических систем» 2019
[09/05/2018] Грандиозная майская распродажа на Gearbest!
[16/05/2017] С 15 по 17 мая в магазине Gearbest проходит грандиозный флэшсейл
[10/05/2017] Так что же такое Спиннер?
[05/12/2016] Новый Год и Рождество с GearBest!
Читать все новости >>
Каталог схем
PDA - интерфейсы и схемы Автозвук Автомобиль Аудио Безопасность Бытовая электроника Видео Видеокамеры Высоковольтные Генераторы Игры, развлечения Измерения Интерфейсы Коммутация Компьютер Медицина Моделирование/ Роботы Музыка Передатчики Питание Получение и накопление данных Предусилители Радио Разное Ремонт Ретро Свет/Лазер/ Cветодиоды/IR Сети Солнечная энергия Сотовая связь ТВ-Мониторы Телефония Управление двигателями Фильтры Цифровые/ Микроконтроллеры Electronic circuits Datasheets Каталог схем Принципиальные схемы
Мicrocontrollers
Drivers for LED dispays Data Logger for iButton LCD-module with MCS-51 Thermometers Dallas Semiconductor Work with EEPROM 24LCxx MSP430 with Flash-memory ATmega169 and AVR-Baterfly CAN interface USB interface
Избранные схемы
Arduino Аудио В Вашу мастерскую Видео Для автомобиля Для дома и быта Для начинающих Зарядные устройства Измерительные приборы Источники питания Компьютер Медицина и здоровье Микроконтроллеры Музыкантам Опасные, но интересные конструкции Охранные устройства Программаторы Радио и связь Радиоуправление моделями Световые эффекты Связь по проводам и не только... Телевидение Телефония Узлы цифровой электроники Фототехника Шпионская техника
Пользователи
Создано аккаунтов:
Сегодня: 0
Вчера: 0
Всего: 146142

Статистика:

 © 2003—2024 «Электронный портал»Обр@тная связь