Понеділок, 20.11.2017, 23:46
Приветствую Вас Гість | RSS

Radiomanoff+

Меню сайта
Форма входа
Календарь
«  Листопад 2017  »
ПнВтСрЧтПтСбНд
  12345
6789101112
13141516171819
20212223242526
27282930

Bit Variables(битные переменные)

Bit Variables(битные переменные)

 

Глобальные переменные бит находится в регистрах GPIO) и R2, R14 памяти.

Эти переменные объявляются с помощью ключевого слова бит.

Синтаксис:

 

bit <идентификатор>;

 

Пример:

 

/* declaration and initialization for an ATtiny2313 chip

   which has GPIOR0, GPIOR1 and GPIOR2 registers (Декларация и инициализация для ATtiny2313 чипом

    который имеет GPIOR0, GPIOR1 и GPIOR2 регистрах) */

bit alfa=1; /* bit0 of GPIOR0 */

bit beta; /* bit1 of GPIOR0 */

 

void main(void)

{

if (alfa) beta=!beta;

 

/* ........ */

}

 

Выделение памяти для глобальных переменных бит сделано, в порядке объявления, начиная с бита 0 GPIOR0, то бит 1 GPIOR0 и так далее, в порядке возрастания.

После того как все регистрах GPIOR выделяются, далее переменные бит выделяются в R2 до R14.

Если чип не имеет GPIOR регистрах, выделение начинается непосредственно из регистра R2.

 

 

Размер глобальных переменных бит, выделяемых на программу могут быть указаны в проекте | Настройка | C Compiler | Code Generation | битных переменных Размер списка (Project|Configure|C Compiler|Code Generation|Bit Variables Size list box).

Этот размер должен быть как можно ниже, чтобы свободный регистрах для выделения других глобальных переменных.

Если специально не инициализирована, глобальные переменные бит автоматически устанавливается в 0 при запуске программы.                                  

 

Максимальный размер глобальных переменных бит, которые размещены в GPIOR (если имеется) и регистрирует R2, R14, можно задать с помощью Размеры битных переменных списка(Bit Variables Size list box).

 

 

Компилятор позволяет также объявить до 8 локальных переменных бит, который будет выделен в регистр R15.

Пример:

 

void main(void)

{

bit alfa; /* bit 0 of R15 */

bit beta; /* bit 1 of R15 */

/* ........ */

}

 

В выражении переменные оценки бита автоматически повышается до неподписанные символ.

 

 

Как нет никакой поддержки битный тип данных в файл формата COFF объекта, компилятор CodeVisionAVR создает отладочную информацию для всего регистра, где немного переменная находится.

Поэтому при просмотре битных переменных в AVR Studio отладчик, значение регистра отображается вместо одного бита от него.

Однако это довольно просто установить значение бита переменной в зависимости от количества бит регистра отведенных для этого, которые отображаются на вкладке Code Information - CodeVisionAVR IDE, и значение регистра отображается в шестнадцатеричном смотреть в окно Watch - AVR Studio.

 

 Результат этих операций определяет таблица значений для всевозможных комбинаций бит двух операндов.

op1

op2

~op1

op1 & op2

op1 ^ op2

op1 | op2

0

0

1

0

0

0

0

1

1

0

1

1

1

0

0

0

1

1

1

1

0

1

0

1


 

 

 

Архив записей
Статистика

Онлайн всього: 1
Гостей: 1
Користувачів: 0