Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
ob:o7:example:get [2021/12/01 04:32] amalgama |
ob:o7:example:get [2022/03/11 14:09] (текущий) iadenisov |
||
---|---|---|---|
Строка 9: | Строка 9: | ||
Машинное слово может быть переменной или константой типа целое ('' | Машинное слово может быть переменной или константой типа целое ('' | ||
- | (ПРИМЕР ДЛЯ STM32 - ) | + | Рассмотрим |
- | + | ||
- | Рассмотрим | + | |
{{ : | {{ : | ||
- | Адреса регистров хранятся в модулях подсистемы '' | + | Адреса регистров хранятся в модулях подсистемы '' |
- | + | ||
- | Для микроконтроллеров **STM32F10xxD** адреса хранятся в модуле '' | + | |
Строка 23: | Строка 19: | ||
MODULE ExamplesGet; | MODULE ExamplesGet; | ||
- | IMPORT SYSTEM, MCU := MicroSTM32F10xxD; | + | IMPORT SYSTEM, MCU := MicroSTM32F10xxD, PinCfg := MicroSTM32F10xPinCfg; |
- | PROCEDURE CheckButton* (pin: INTEGER): BOOLEAN; | + | CONST pin = 7; |
+ | |||
+ | PROCEDURE InitButton*; | ||
+ | BEGIN | ||
+ | PinCfg.Configure(PinCfg.C, | ||
+ | END InitButton; | ||
+ | |||
+ | PROCEDURE CheckButton*(): | ||
VAR x: SET; | VAR x: SET; | ||
BEGIN | BEGIN | ||
SYSTEM.GET(MCU.GPIOAIDR, | SYSTEM.GET(MCU.GPIOAIDR, | ||
- | RETURN pin IN x | + | RETURN pin IN x (* проверяем, есть ли искомый пин в множестве бит регистра *) |
END CheckButton; | END CheckButton; | ||
- | |||
END ExamplesGet. | END ExamplesGet. | ||
</ | </ | ||
- | Этот пример реализует процедуру, | + | Этот пример реализует процедуру, |
Подробнее про [[https:// | Подробнее про [[https:// | ||
+ | |||
+ | |||
+ | Второй пример реализует чтение данных в целое число из регистра чтения данных АЦП: | ||
+ | < | ||
+ | VAR value: INTEGER; | ||
+ | BEGIN | ||
+ | SYSTEM.GET(MCU.ADC1DR, | ||
+ | </ | ||
+ |