Перейти к содержанию
    

1986ВЕ1Т

 

Добрый вечер,коллеги.

Пришло (с опозданием) но все же пришло время применять в проекте отечественные МК 1986ВЕ1Т. Вот тут меня и ожидал сюрприз - настройка ARM после 8-ми битных контроллеров для меня кажется очень сложной в том смысле, что я не понимаю откуда в примерах пишутся те или иные команды.

Конкретно, поясню на примере:

Есть код (показан ниже) из примера. По функционалу -всё понятно, но где мне отыскать (прочитать) что есть вот такая команда RST_CLK_PCLKcmd (RST_CLK_PCLK_PORTC, ENABLE) или например вот такая PORT_StructInit. 

На 8-ми битные контролеры, даташит был единственным документом по которому можно было сразу начинать писать программу. Здесь же явно не так. В примерах описываются команды, которых нет в прямом виде в описании на контроллер 1986ВЕ1Т.

Вопрос собственно вот в чем:

Где взять полное описание таких команд на данный контроллер и назначение всех его регистров ?

// Заводим структуру конфигурации вывода(-ов) порта GPIO
  PORT_InitTypeDef GPIOInitStruct;
	
  //  Включаем тактирование порта C
  RST_CLK_PCLKcmd (RST_CLK_PCLK_PORTC, ENABLE);
	
  //  Инициализируем структуру конфигурации вывода(-ов) порта значениями по умолчанию
  PORT_StructInit(&GPIOInitStruct);
  
  //  Изменяем значения по умолчанию на необходимые нам настройки
  GPIOInitStruct.PORT_Pin        = PORT_Pin_0;
  GPIOInitStruct.PORT_OE         = PORT_OE_OUT;
  GPIOInitStruct.PORT_SPEED      = PORT_SPEED_SLOW;
  GPIOInitStruct.PORT_MODE       = PORT_MODE_DIGITAL;
  
  //  Применяем заполненную нами структуру для PORTC.
  PORT_Init(MDR_PORTC, &GPIOInitStruct);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сейчас практически все производители МК предоставляют под них SPL (Standart Peripheral Library).
Это тупо набор исходников с уже реализованным базовым функционалом всей периферии в МК.
Для быстрого старта удобная штука. Сам раньше пользовался. Сейчас - довольно редко, но бывает.

В документации на МК Вы, естественно, описание этих всяких PORT_Init() не найдете - откуда им там быть?:wink:
Для быстрого старта Вам достаточно разобраться с системой тактирования Вашего МК, особенностями запуска периферии.
Но, судя по приведенному выше коду, там все +/- одинаково с теми же STM32. Так что можете брать примеры для STM-ок и проводить аналогии.

Описание, скорее всего, Вы не найдете. Это ж Open Source, тем более внутри все функции обозваны довольно понятно. Весь API в заголовочных файлах.
Хотите, например, GPIO настроить на выход - светодиодом моргать. Открываете *GPIO*.h - там прототипы функций и всякие структурки и удобные дефайны.
После настройки тактирования в модуле RST_CLK смотрите "ага, есть PORT_Init(), аргументами принимает указатель на порт и какую-то структуру".
Дальше лезете и смотрите, что за указатель такой (MDR_PORTC или подобные что наружу торчат), а структура должна быть типа PORT_InitTypeDef.
Там же смотрите определение той структуры - в ней есть поля, которые отвечают за различные атрибуты самой лапки МК - тип (вход/выход) и т.д.

Обычно все сразу будет более-менее работать. Но, конечно же, бывают и казусы - например, в SPL глюк. Или не учтена какая-то специфика и т.д.
Тогда придется лезть и разбираться детальнее - возможно, даже, переписать самому на уровне регистров МК, читая лишь мануал на него.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 часов назад, MaltsevIgor11061983 сказал:

На 8-ми битные контролеры, даташит был единственным документом по которому можно было сразу начинать писать программу. Здесь же явно не так. В примерах описываются команды, которых нет в прямом виде в описании на контроллер 1986ВЕ1Т.

Есть два варианта - писать напрямую в регистры (как в 8-битках) или писать с помощью библиотеки.

В любом случае стоит подтянуть знание Си и идти на форум https://forum.milandr.ru/ там все ссылки на библиотеки есть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 часов назад, MaltsevIgor11061983 сказал:

Здесь же явно не так.

Да, здесь несколько иначе. На ARM'ы нужно почитать и осмыслить довольно много документации, чтобы программировать их сознательно. Примерный перечень документации был собран тут уважаемым @haker_fox и чуть ниже дополнен остальными коллегами.

14 часов назад, Arlleex сказал:

Но для быстрого старта вполне сгодится.

Плюсую)))

З.Ы. Довольно внятные примеры идут с компилятором IAR. Не знаю, если для отечественного. Но учитывая родство, подобрать подходящие не проблема.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У Миландра в одном архиве с SPL находится файл MDR32F9Qx_Standard_Peripherals_Library.chm

Там все функции, структуры, константы и др. описаны на англ. языке

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14.12.2020 в 11:38, Палыч сказал:

и др. описаны на англ. языке

Интересно, контроллер типа русский, а описание на вражеском))))))))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

59 минут назад, mantech сказал:

Интересно, контроллер типа русский, а описание на вражеском))))))))

Дак импортозамещение.

А импортное все на англицком...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, mantech сказал:

Интересно, контроллер типа русский, а описание на вражеском))))))))

А кто не хочет читать на вражеском, тот читает даташит и программирует в двоичных кодах. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, mantech сказал:

Интересно, контроллер типа русский, а описание на вражеском))))))))

Проблема исчезает как только перестаёшь делить мир на добрый и злой, на соратников и врагов:blum:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вобчето они делают какието переводы на русский, но в оригинале както понятнее. Наш канцелярит смысл вымывает. А на талантливых тех-писак наверно денег нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 часов назад, mantech сказал:

контроллер типа русский, а описание на вражеском

Врач, вроде, русский. И лекарство тоже. А рецепт выписывает на каком-то мёртвом языке. Кошмар. Куда катится мир.

Правильно - это чтобы описание на китайский процессор/контроллер было только на китайском. На корейский - только на корейском. На японский - только на японском.:biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, Darth Vader сказал:

А рецепт выписывает на каком-то мёртвом языке.

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

, как будто их специально учат писать, чтоб никто не понял,кроме подобного)))

11 часов назад, MrBearManul сказал:

как только перестаёшь делить мир на добрый и злой

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

11 часов назад, AlexRayne сказал:

Вобчето они делают какието переводы на русский, но в оригинале както понятнее.

Вот и пусть переводят, так глядишь и сами поймут то, что сделали...Или скопировали на то пошло))

13 часов назад, Zig сказал:

А импортное все на англицком...

Это не наш метод!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, MaltsevIgor11061983 сказал:

Спасибо, коллеги за ссылки и ответы

Читайте учебные материалы на сайте Центра обучения Миландра.

И материалы техподдержки по программированию их 32-разрядных микроконтроллеров.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...