Что такое регистр какие функции он может выполнять

Что такое регистр?

Регистр. Регистр сдвига

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

Регистр это устройство, выполненное на триггерах для выполнения ряда действий с двоичными числами. Для тех, кто не знает, что такое триггер, рекомендуем познакомиться с простейшим RS-триггером.

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

Обычно используются регистры, состоящие из 4, 8, или 16 триггеров. Изображение четырёхразрядного регистра на принципиальных схемах может быть таким.

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

На рисунке не показаны инверсные выхода триггеров и сигнал R. Регистры всегда обозначаются латинскими буквами RG. Если регистр сдвигающий, то под обозначением рисуется стрелка направленная влево, вправо или двойная.

Сдвигающие регистры или регистры сдвига.

Регистр сдвига это устройство, состоящее из нескольких последовательно соединённых триггеров, число которых определяет разрядность регистра. Регистры широко используются в вычислительной технике для преобразования кодов. Параллельного в последовательный и наоборот.

Кроме того сдвигающие регистры являются основой (АЛУ) арифметико-логического устройства, так как при сдвиге записанного в регистр двоичного числа на один разряд влево производится умножение числа на два, а при сдвиге числа на один разряд вправо число делится на два. Поэтому наибольшее распространение получили реверсивные или двунаправленные регистры.

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

Регистр работает следующим образом. Первый информационный бит поступает на вход D0. Одновременно с этим битом приходит тактовый синхроимпульс на вход С. Входы С всех триггеров входящих в регистр, объединены между собой. С приходом первого тактового импульса уровень, находящийся на входе D0 записывается в первый триггер и с выхода Q0 приходит на вход следующего триггера, но записи во второй триггер не происходит, так как синхроимпульс уже закончился.

При поступлении следующего тактового импульса уровень, присутствующий на входе второго триггера запоминается в нём и поступает на вход третьего триггера. Одновременно следующий информационный бит запоминается в первом триггере. После прихода четвёртого тактового импульса в четырёх триггерах регистра будут записаны логические уровни, которые последовательно поступали на вход D0.

Допустим это уровни 01102. Тогда это двоичное число можно отобразить, подключив к выходам триггеров светодиоды. Так рассмотренный регистр изображается на принципиальной схеме.

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

Регистр содержит четыре D-триггера, которые соединены между собой с помощью дополнительных логических элементов И – ИЛИ, которые позволяют реализовать различные функции. На схеме:

V2 – вход управления. С его помощью выбирается режим работы регистра.

Q1 – Q4 выходы триггеров с которых снимается параллельный код.

V1 – вход для подачи последовательного кода.

C1, C2 – тактовые синхроимпульсы.

D1 – D4 – входы для записи параллельного кода.

Алгоритм работы регистра следующий. Если на вход V2 подать низкий потенциал, тактовые импульсы на C1, а на вход V1 подавать информационные биты, то регистр осуществляет сдвиг вправо. После приёма четырёх разрядов на выходах триггеров Q1 – Q4 мы получаем параллельный код. Таким образом осуществляется преобразование последовательного кода в параллельный.

Для обратного преобразования параллельный код записывается по входам D1 – D4, с подачей на вход V2 высокого потенциала и тактовых импульсов на вход С2. Затем подавая на вход V2 низкий потенциал, а тактовые импульсы на вход С1 мы сдвигаем записанный код, а с выхода последнего триггера снимается последовательный код.

По своей структуре это один из самых простых регистров сдвига.

Регистры сдвига в цифровой технике могут послужить основой, на которой собираются узлы с интересными свойствами. Это, например, кольцевые счётчики, которые называются счётчики Джонсона. Такой счётчик имеет количество состояний вдвое большее, чем число составляющих его триггеров. Например, если кольцевой счётчик состоит из трёх триггеров, то он будет иметь шесть устойчивых состояний. На вход счётчика ничего не подаётся кроме синхроимпульсов. В первоначальном состоянии все триггеры «сброшены», то есть на прямых выходах триггеров логические нули, а вот на входе D первого триггера с инверсного выхода третьего триггера находится логическая единица. Начнём подавать тактовые импульсы и процесс пошёл.

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

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

NQ2Q1Q0
1001
2011
3111
4110
5100
6000

Источник

Что такое регистр? Перечислите операции, выполняемые регистром. Что такое операция сдвига кода в регистре? Что при этом происходит с разрядами слова?

Что такое регистр?

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

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

Перечислите операции, выполняемые регистром

Регистр представляет собой совокупность триггеров, число которых соответствует числу разрядов в слове, а также вспомогательных схем, обеспечивающих выполнение следующих операций:

1) Установка регистра в 0 или сброс;

2) Прием слова из другого устройства;

3) Передача слова в другой регистр или устройство;

4) Сдвиг слова вправо или влево на требуемое число разрядов;

5) Преобразование последовательного кода слова в параллельный и наоборот;

6) Поразрядные логические операции.

Что такое операция сдвига кода в регистре? Что при этом происходит с разрядами слова?

Могут быть построены различные функциональные схемы регистров.

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

На рисунке 4.8 показана возможная вариация построения схемы регистра на нескольких RS-триггерах. Количество триггеров соответствует разрядности n. Необходимым условием является наличие сигнала синхронизации С=1, которая устанавливает триггер в нужное состояние независимо от той информации, которая в нем хранилась. Как правило, операция передачи кода с регистра объединяется с операцией приема этого кода в другой регистр. Операция сдвига кода – перемещение в регистре всех разрядов кода слова на одинаковое число разрядов влево или вправо. В этом случае разряды слова, вышедшие из разрядной сетки регистра теряются, а в освободившиеся разряды регистра записываются нули.

Билет № 14

Что такое дешифратор?

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

Рис. 5.3.Условноеобозначениедешифратора

Дешифратор – комбинационная схема с несколькими входами и выходами, преобразующая код, подаваемый на входы в сигнал на одном из выходов.

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

Для чего используются дешифраторы?

Дешифраторы устанавливаются в схемах вычислительных устройств, на выходах регистров или счетчиков и служат для преобразования кода слова, находящегося в регистре или счетчике, в управляющий сигнал на одном из выходов дешифраторов. На рисунке 5.2 показан способ построения дешифратора с инверсными выходами для 3-разрядного входного слова. Схема представляет собой набор из восьми элементов И-НЕ, на входы которых поданы все возможные комбинации прямых и инверсных значений разрядов слова. Если каждый выходной элемент дешифратора имеет вход для сигнала синхронизации, то такой дешифратор называется синхронизируемым, и при сигнале синхронизации С=1 все выходы такого дешифратора будут иметь единичное значение, а при сигнале С=0 он будет работать также, как и дешифратор с инверсными выходами.

Какие операции могут выполняться в процессе обмена между локальной шиной процессора и системной шиной?

Посредством чего осуществляется управление шинами-формирователями?

Шины данных предназначены для передачи информации в двух направлениях.

Шинные формирователи представляют собой двунаправленные устройства. Управление шинами формирователями осуществляется посредством двух сигналов:

1. Первый сигнал определяет время передачи данных.

2. Второй сигнал определяет направление передачи.

Оба сигнала формируются микропроцессором в каждом цикле шины.

Что такое чипсет?

Шинные формирователи могут входить составными частями в

более крупные интегральные схемы, размещенные на системной плате компьютера. Такие интегральные схемы называют чипсетом. Они совместно с процессором выполняют объединение всех элементов в единую вычислительную систему.

Источник

Регистр принцип работы

Регистры. Устройство, принцип работы

Регистр — это последовательностное логическое устройство, используемое для хранения n-разрядных двоичных чисел и выполнения преобразований над ними. Регистр представляет собой упорядоченную последовательность триггеров, число которых соответствует числу разрядов в слове. С каждым регистром обычно связано комбинационное цифровое устройство, с помощью которого обеспечивается выполнение некоторых операций над словами.

Типичными являются следующие операции:

● прием слова в регистр;

● передача слова из регистра;

● поразрядные логические операции;

● сдвиг слова влево или вправо на заданное число разрядов;

● преобразование последовательного кода слова в параллельный и обратно;

● установка регистра в начальное состояние (сброс).

Фактически любое цифровое устройство можно представить в виде совокупности регистров, соединенных друг с другом при помощи комбинационных цифровых устройств.

Классификация

● накопительные (регистры памяти, хранения);

В свою очередь сдвигающие регистры делятся:

● по способу ввода-вывода информации на параллельные, последовательные, комбинированные;

● по направлению передачи информации на однонаправленные, реверсивные.

Для чего нужны регистры

Регистры процессора – это ячейки сверхбыстрой оперативной памяти, которые предназначены для временного хранения промежуточных данных. Различные регистры содержат информацию в различном виде: адреса и указатели сегментов памяти или системных таблиц, индексы элементов массива и пр.

В процессоре находится большое количество регистров, которые можно разделить на несколько основных групп: аккумуляторы, флаги, указатели, индексные, сегментные и регистры управления. Регистры процессора представляют собой ячейки памяти для приема, хранения и последующей передачи промежуточных результатов выполнения программ.

Любой регистр процессора – это цифровая электронная схема, содержащая последовательность двоичных чисел различной разрядности (16, 32 или 64) и результаты выполнения преобразований между ними. По типу приема и передачи информации могут быть последовательными (сдвиговыми) и параллельными.

Регистры-аккумуляторы универсальны, в них содержится большая часть промежуточных результатов выполнения различных команд (логических, арифметических, ввода/вывод и пр.). Процессор может содержать более одного аккумулятора. Разработчики программного обеспечения используют аккумуляторы для сокращения разрядности команд, упрощения программного кода.

Регистры-флаги известны также как регистры условий. Они показывают определенный результат выполнения операции, который может быть нулевым, положительным, отрицательным, или указывать на переполнение. Обычно коды условий объединяются в группы и образуют регистр другого типа – управляющий. Менять регистры-флаги возможно, но нежелательно, чтобы не исказить цельный результат.

Регистры, содержащие указатели на особые области памяти (стек, базу, команду), называются регистрами-указателями. Самый главный из них – указатель стека. Стек – это часть памяти, состоящая из ячеек, следующих друг за другом, т.е. взять из стека можно только ту ячейку, которая лежит сверху. Именно на эту вершину и указывает регистр стека.

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

Регистр-указатель команд иногда называют счетчиком команд, он содержит указатели на команды рабочего цикла. Когда команда выполняется, его значение увеличивается на 1 и цикл продолжается со следующей команды. Т.е. счетчик команд всегда указывает на команду, следующую за выполняемой в настоящий момент.

Индексных регистров два – это индекс источника и индекс приемника. Они используются для получения адреса данных стека в сочетании с регистрами-указателями.

Сегментные регистры используются при сегментной адресации памяти. При этом память делится на блоки (сегменты) различной длины. Адрес нужной ячейки памяти определяется адресом начала блока и величиной сдвига относительно него. Всего сегментных регистров четыре: для кодового сегмента, сегмента данных, сегмента стека и дополнительного сегмента.

Регистры управления контролируют работу процессора и недоступны пользователю. Их выполнение в основном, контролируют машинные программы. В них содержится информация о текущей выполняемой команде, состоянии процессора, а также они локализуют управляющие структуры при работе процессора в защищенном режиме.

Источник

Начинаем изучать STM32: Что такое регистры? Как с ними работать?

Продолжаем рассмотрение базовых вопросов

В предыдущем уроке мы рассмотрели работу с битовыми операциями и двоичными числами, тем самым заложив основу для рассмотрения новой темы. В этом уроке мы с Вами рассмотрим очередной вопрос: что такое регистры и как с ними работать?

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

Память и регистры

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

В целом, регистр — это особый вид памяти внутри микроконтроллера, который используется для управления процессором и периферийными устройствами. Каждый регистр в архитектуре ARM представляет собой ячейку памяти и имеет длину в 32 бита, где каждый бит можно представить в виде крошечного выключателя с помощью которого осуществляется управление тем или иным параметром микроконтроллера.

Каждый из регистров имеет свой порядковый номер – адрес. Адрес регистра обозначается 32-битным числом представленным в шестнадцатеричной системе счисления. Путём записи по адресу регистра определённой комбинации единиц и нулей, которые обычно представлены в шестнадцатеричном виде, осуществляется настройка и управление тем или иным узлом в МК. Вспомним, что в программе для работы с битовыми операциями, мы могли представить в виде шестнадцатеричного числа произвольный набор единиц и нулей. В целом стоит отметить, что существует два вида регистров: регистры общего назначения и специальные регистры. Первые расположены внутри ядра МК, а вторые являются частью RAM-памяти.

Так же стоит отметить, что Reference Manual, который мы скачивали в первом уроке, это один большой справочник по регистрам, содержащимся в целевом микроконтроллере, а библиотека CMSIS позволяет нам оперировать символьными именами регистров вместо числовых адресов. Например, к регистру 0x40011018 мы можем обратиться просто, используя символьное имя GPIOC_BSSR. Конкретные примеры конфигурирования мы рассмотрим в ходе разбора нашей программы из первого занятия.

Итак, обычно структура регистра описывается в виде небольшой таблицы с указанием:

Разбор кода из первого занятия

Итак, давайте вспомним задачу, которую мы решили на первом уроке используя готовый код примера: нам было необходимо написать программу, которая бы обеспечила попеременное включение двух светодиодов на плате Discovery (возможно и не двух, если у вас другая версия платы Discovery) с временным интервалом.

Давайте еще разок взглянем на код программы, которую мы использовали для того, чтобы заставить наш МК дрыгать двумя ногами на которых расположены наши светодиоды:

Первым делом, при работе с STM32, даже для такой простой задачи как включение и выключение светодиода нам необходимо предварительно ответить на ряд вопросов:

Куда подключены наши светодиоды? К какому выводу микроконтроллера?

Для того, чтобы посмотреть где что находится на плате Discovery, а в частности, нужные нам светодиоды — нужно открыть Schematic-файл, либо тот который мы скачали с сайта ST, либо прямо из Keil:

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

Открыв Schematic мы увидим схему всего того, что есть на плате — схему ST-Link, обвязку всей периферии и многое другое. На текущий момент нас интересуют два светодиода, ищем их обозначение:

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

Как мы видим, наши светодиоды подключены к порту GPIOC на 8 и 9 пин.

Как включить тактирование на нужный порт GPIO?

В целом, любая работа с периферией в микроконтроллерах STM32 сводится к стандартной последовательности действий:

Внимание! Вопрос касательно системы тактирования, её настройки и использования мы подробно рассмотрим в отдельной статье.

Найти к какой шине подключен наш порт GPIOC можно найти в Datasheet’е на наш МК в разделе Memory Mapping в Таблице 16. STM32F051xx peripheral register boundary addresses.

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

Как вы уже успели заметить, необходимая нам шина именуется как AHB2. Для того чтобы подробнее ознакомиться с регистром, в котором включается тактирование на нужный нам порт GPIO на шине AHB, надо перейти в соответствующий раздел в Reference Manual. По названию регистров мы можем определить тот, который нужен нам:

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

Переходим в этот пункт, и мы видим наш 32-битный регистр, его адрес смещения, значение по умолчанию, способ доступа к регистру и перечисление того, за что отвечает каждый бит в регистре.

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

Смотрим на таблицу и видим нечто напоминающее опции включения тактирования на портах GPIO. Переходим к описанию и находим нужную нам опцию:

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

Соответственно если мы установим 19 бит в значение «1» то это обеспечит включение тактирования на порт I/O C – то есть на наш GPIOC. К тому же — нам нужно включить отдельно один бит из группы, не затрагивая остальные т.к. мы не должны мешать и изменять без надобности другие настройки.

Основываясь на материалах прошлого урока, мы знаем что для того чтобы выставить определенный бит нужно используя логическую операцию «ИЛИ» сложить текущее значение регистра с маской которая содержит те биты которые необходимо включить. Например, сложим значение регистра RCC->AHBENR по умолчанию, т.е. 0x14 и число 0x80000 тем самым включим тактирование GPIOC путем установки 19 бита:

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

Каким образом мы можем это сделать из программы? Всё достаточно просто. В данном случае у нас два варианта:

То есть, мы могли бы обращаться к адресам регистров напрямую по адресу и написать так:

Второй вариант мне кажется наиболее привлекательным, т.к. библиотека CMSIS организована таким способом, что регистру можно обращаться, используя только его название. Препроцессор в ходе обработки текста программы перед компиляцией подставит все цифровые значения адреса регистра автоматически. Давайте разберем этот вопрос чуть подробнее.

Предлагаю открыть наш проект, который мы сделали в первом занятии, или скачайте предварительно подготовленый отсюда и удалите все содержимое программы оставив только подключенный заголовочный файл, функцию main() и инструкцию для включения тактирования (она нам понадобится для подробного разбора кода).

Наш код будет выглядеть следующим образом:

Давайте для ознакомления копнём вглубь библиотеки CMSIS.

Для того, чтобы быстро перейти к месту где объявлена та или иная константа или переменная в Keil реализована удобная функция. Кликаем правой кнопкой по необходимой нам константе, например, на RCC:

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

И мы переносимся в глубины библиотеки CMSIS, в которой увидим, что все регистры доступные для управления программным способом имеют вид TypeDef-структур, в том числе и наш RCC:

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

Провалившись подобным образом в RCC_TypeDef мы увидим структуру в которой описаны все поля нашего регистра:

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

Соответственно, мы можем спокойно обращаться к нужному нам регистру записью вида PERIPH_MODULE->REGISTER и присваивать ему определенное значение.

Помимо мнемонического обозначения регистров есть так же обозначения конкретных битов. Если мы провалимся к объявлению параметра RCC_AHBENR_GPIOCEN из нашей программы, то так же увидим объявление всех параметров:

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

Таким образом, используя библиотеку CMSIS у нас получается лаконичная читаемая запись нужного нам параметра в регистр, через установку которого мы запускаем тактирование на нужный нам порт:

В качестве задания: определите используя возможности Keil, каким образом получился адрес регистра RCC->AHBENR как 0x40021014.

Как настроить нужные нам пины GPIO для того чтобы можно было включить светодиод?

Итак, мы знаем что нужные нам светодиоды подключены к порту GPIOC к пинам PC8 и PC9. Нам нужно настроить их в такой режим, чтобы загорался светодиод. Хотелось бы сразу же сделать оговорку, что порты GPIO мы рассмотрим подробнее в другой статье и тут мы сконцентрируемся именно на работе с регистрами.

Первым делом нам нужно перевести режим работы пинов PC8 и PC9 в режим Output. Остальные параметры порта можно оставить по умолчанию. Переходим в Reference Manual в раздел 9. General-purpose I/Os (GPIO) и открываем пункт отвечающий за режим работы пинов порта GPIO и видим что за этот параметр отвечает регистр MODER:

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

Судя по описанию, для установки пинов PC8 и PC9 в режим Output мы должны записать 01 в соответствующие поля регистра GPIOC.

Это можно сделать через прямую установку с помощью числовых значений:

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

Или через использование определений из библиотеки:

После данной инструкции наши пины PC8 и PC9 перейдут в режим Output.

Как включить светодиод?

Если мы обратим внимание на список доступных регистров для управления портом GPIO то можем увидеть регистр ODR:

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

Каждый из соответствующих битов отвечает за один из пинов порта. Его структуру вы можете увидеть ниже:

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

Для того, чтобы обеспечить попеременную смену состояний светодиодов надо с определенным временным интервалом включать/выключать 8 и 9 биты. То есть попеременно присваивать регистру значение 0x100 и 0x200.

Сделать это мы можем через прямое присвоение значений регистру:

Можем через использование определений из библиотеки:

Но так как микроконтроллер работает очень быстро — мы не будем замечать смены состояний светодиодов и визуально будет казаться что они оба горят постоянно. Для того чтобы они действительно моргали попеременно мы внесем искусственную задержку в виде цикла который займет МК бесполезными вычислениями на некоторое время. Получится следующий код:

На этом первоначальное знакомство с регистрами и методами работы с ними мы можем закончить.

Проверка результатов работы нашего кода

Небольшое приятное дополнение в конце статьи: в Keil имеется отличный Debug-инструмент с помощью которого мы можем пошагово выполнить нашу программу и просмотреть текущее состояние любого периферийного блока. Для этого после загрузки прошивки после компиляции мы можем нажать кнопку Start Debug Session:

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

Рабочая среда Keil переключится в режим отладки. Мы можем управлять ходом программы с помощью данных кнопок:

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

И есть еще одна удобная функция работы с периферией в режиме отладки, она позволяет просматривать текущее состояние регистров и менять их состояние простым кликом мышкой.

Для того чтобы ей воспользоваться — нужно перейти в соответствующий периферийный блок и справа откроется окно с указанием регистров и их значением.

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

Если вы кликните по одному из пунктов данного меню, вы увидите адрес регистра и его краткое описание. Так же можно просмотреть описание к каждому отдельному параметру регистра:

Что такое регистр какие функции он может выполнять. Смотреть фото Что такое регистр какие функции он может выполнять. Смотреть картинку Что такое регистр какие функции он может выполнять. Картинка про Что такое регистр какие функции он может выполнять. Фото Что такое регистр какие функции он может выполнять

Попробуйте самостоятельно пошагово выполнить программу, включить/выключить светодиоды не используя программу, а используя данный режим работы с микроконтроллером. Простор для фантазии тут обширный. Так же попробуйте поиграться с длительностями задержек, сделайте одновременное моргание обоими светодиодами. В общем экспериментируйте! )

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *