Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
ob:o7:example:get [2021/12/01 06:03] iadenisov |
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, | ||
| + | </ | ||
| + | |||