| Предыдущая версия справа и слева
Предыдущая версия
Следующая версия
|
Предыдущая версия
|
ob:o7:example:put [2021/11/12 19:23] iadenisov |
ob:o7:example:put [2026/04/03 08:14] (текущий) iadenisov |
| Тип SET позволяет записать машинное слово в формате множества бит. | Тип SET позволяет записать машинное слово в формате множества бит. |
| |
| Пример константы типа ''SET'', где 1-ый, 2-й и 30-й бит 32-битного машинного слова равны 1: | Пример константы типа ''SET'', где 1-ый, 2-й и 30-й бит машинного слова равны 1: |
| <code> | <code> |
| {0,2,30} | {0,2,30} |
| </code> | </code> |
| |
| Рассмотрим на примере регистра ''GPIOx_BSRR''. В этом фрагменте из [[https://www.st.com/content/ccc/resource/technical/document/reference_manual/59/b9/ba/7f/11/af/43/d5/CD00171190.pdf/files/CD00171190.pdf/jcr:content/translations/en.CD00171190.pdf|документации к микроконтроллеру]] показано, что первые 16 бит регистра ''GPIOx_BSRR'' управляют подачей напряжения на вывод, а оставшиеся 16 бит (от 16 до 31) выключают напряжение на выводах порта. | Рассмотрим запись на примере регистра ''GPIOx_BSRR''. В этом фрагменте из [[https://www.st.com/content/ccc/resource/technical/document/reference_manual/59/b9/ba/7f/11/af/43/d5/CD00171190.pdf/files/CD00171190.pdf/jcr:content/translations/en.CD00171190.pdf|документации к микроконтроллеру]] показано, что первые 16 бит регистра ''GPIOx_BSRR'' управляют подачей напряжения на вывод, а оставшиеся 16 бит (от 16 до 31) выключают напряжение на выводах порта. |
| |
| {{ :ob:o7:example:bsrr.png?800 |}} | {{ :ob:o7:example:bsrr.png?800 |}} |
| |
| Адреса регистров хранятся в модулях подсистемы ''Micro''. Для микроконтроллеров **STM32F10xxD** адреса хранятся в модуле ''MicroSTM32F10xxD''. | Адреса регистров хранятся в модулях подсистемы ''Micro''. |
| | |
| | Для микроконтроллеров **STM32F10xxD** адреса хранятся в модуле ''MicroSTM32F10xxD''. |
| |
| <code> | <code> |
| SYSTEM.PUT(MCU.GPIOCBSRR, {x+16}); (* убрать напряжение на PСx *) | SYSTEM.PUT(MCU.GPIOCBSRR, {x+16}); (* убрать напряжение на PСx *) |
| END Off; | END Off; |
| |
| |
| END ExamplesPut. | END ExamplesPut. |
| В процедуре ''Off13'' мы записываем константу ''{13+16}'' типа ''SET'', которая означает то, что бит с номером 29 равен 1. Такая операция над регистром ''GPIOCBSRR'' приводит к выключению напряжения на выводе ''PC13''. | В процедуре ''Off13'' мы записываем константу ''{13+16}'' типа ''SET'', которая означает то, что бит с номером 29 равен 1. Такая операция над регистром ''GPIOCBSRR'' приводит к выключению напряжения на выводе ''PC13''. |
| |
| | Следующая заметка: [[ob:o7:example:set|Битовые операции]] |
| | |
| | [[ob:o7:examples|Учебник по программированию микроконтроллеров]] |
| |