Работа с регистрами К1921ВК028

32-разрядные микроконтроллеры разработки АО "НИИЭТ"

Модераторы: ea, dav, bkolbov, Alis, pip, _sva_

Ответить
Summer Thunder
Сообщения: 6
Зарегистрирован: 13 дек 2022, 16:08
Предприятие: Концерн

Работа с регистрами К1921ВК028

Сообщение Summer Thunder »

Добрый день. Веду разработку на контроллере К1921ВК028, работаю непосредственно с регистрами контроллера. Возникла проблема - при компиляции обращения к некоторым регистрам контроллера компилятор помечает как ошибку. Пример:

NT_RCU -> PLLCFG_bit.REFSRC = 0x2;
Error[c20] identifier "NT_RCU" Is undefined

NT_RCU -> HCLKCFG = 0x00000001;
Error[c20] identifier "NT_RCU" Is undefined

NT_GPIOA -> DRIVEMODE = 0x000AAA00;
Error[c20] identifier "NT_GPIOA" Is undefined

С чем подобная ошибка может быть связана? В опциях проекта выбран нужный контроллер.
dav
Сообщения: 209
Зарегистрирован: 14 дек 2015, 09:21
Предприятие: АО НИИЭТ
Откуда: АО НИИЭТ, Воронеж

Re: Работа с регистрами К1921ВК028

Сообщение dav »

Summer Thunder писал(а): 13 дек 2022, 17:20 Добрый день. Веду разработку на контроллере К1921ВК028, работаю непосредственно с регистрами контроллера. Возникла проблема - при компиляции обращения к некоторым регистрам контроллера компилятор помечает как ошибку.

С чем подобная ошибка может быть связана? В опциях проекта выбран нужный контроллер.
Доброго времени суток!
Для микроконтроллера К1921ВК028 будут корректные следующие обращения к регистрам (без префикса "NT_"):
RCU -> PLLCFG_bit.REFSRC = 0x2;
RCU -> HCLKCFG = 0x00000001;
GPIOA -> DRIVEMODE = 0x000AAA00;
Summer Thunder
Сообщения: 6
Зарегистрирован: 13 дек 2022, 16:08
Предприятие: Концерн

Re: Работа с регистрами К1921ВК028

Сообщение Summer Thunder »

К сожалению получаю такую же ошибку.

RCU -> PLLCFG_bit.REFSRC =0x2;
Error [c20] identifier "RCU" is undefined

RCU -> HCLKCFG = 0x00000001;
Error [c20] identifier "RCU" is undefined

Перепроверил опции проекта - контроллер выбран нужный, при просмотре регистров вижу регистры на 028 контроллер.
dtolstov
Сообщения: 5
Зарегистрирован: 14 дек 2022, 16:07
Предприятие: ОАО ВНИИР

Re: Работа с регистрами К1921ВК028

Сообщение dtolstov »

Summer Thunder писал(а): 13 дек 2022, 17:20 работаю непосредственно с регистрами контроллера
...
компилятор помечает как ошибку

NT_RCU -> HCLKCFG = 0x00000001;
Error[c20] identifier "NT_RCU" Is undefined
Здравствуйте.

Вы не указали компилятор и не привели исходный код этого файла, однако
макросы типа RCU и GPIOA, специфичные для этого микроконтроллера,
определены в заголовочном файле CMSIS Device:
niietcm4/k1921vkx_sdk/platform/Device/NIIET/K1921VK028/Include/K1921VK028.h

Код: Выделить всё

user@hostname:~/git/niietcm4/k1921vkx_sdk$ grep "#define RCU " -nr platform/
platform/Device/NIIET/K1921VK028/Include/K1921VK028.h:17646:#define RCU                  ((RCU_TypeDef                 *) RCU_BASE)
platform/Device/NIIET/K1921VK035/Include/K1921VK035.h:10051:#define RCU                  ((RCU_TypeDef                 *) RCU_BASE)
user@hostname:~/git/niietcm4/k1921vkx_sdk$ git rev-parse HEAD
45893dd9ab5d922c235e22f2a31df5f131703054
user@hostname:~/git/niietcm4/k1921vkx_sdk$ git status
На ветке develop
Ваша ветка обновлена в соответствии с «origin/develop».
Убедитесь, что сделали #include "K1921VK028.h" в этом исходнике, а сборочная система передаёт путь до includes.
Summer Thunder
Сообщения: 6
Зарегистрирован: 13 дек 2022, 16:08
Предприятие: Концерн

Re: Работа с регистрами К1921ВК028

Сообщение Summer Thunder »

Большое спасибо за помощь! Заголовочный файл K1921 VK028.h был в зависимостях, по вашим номерам строк нашёл нужный образец обращения. В нем прописанно обращение к регистрам с нижним подчеркиванием:
_RCU -> PLLCFG_bit.REFSRC =0x2;
_RCU -> HCLKCFG = 0x00000001;

На данный момент всё работает.
Ответить

Вернуться в «32-разрядные микроконтроллеры»