Jump to content

    
Sign in to follow this  
MaltsevIgor11061983

1986ВЕ1Т

Recommended Posts

 

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

Пришло (с опозданием) но все же пришло время применять в проекте отечественные МК 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);

Share this post


Link to post
Share on other sites

Сейчас практически все производители МК предоставляют под них 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 тот самый - штука достаточно порой громоздкая и неоптимальная, местами даже очень. Но для быстрого старта вполне сгодится.

Share this post


Link to post
Share on other sites
11 часов назад, MaltsevIgor11061983 сказал:

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

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

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

Share this post


Link to post
Share on other sites
15 часов назад, MaltsevIgor11061983 сказал:

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

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

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

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

Плюсую)))

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites
59 минут назад, mantech сказал:

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

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

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

Share this post


Link to post
Share on other sites
1 час назад, mantech сказал:

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

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

Share this post


Link to post
Share on other sites
1 час назад, mantech сказал:

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
11 часов назад, mantech сказал:

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

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

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

Share this post


Link to post
Share on other sites
2 часа назад, Darth Vader сказал:

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

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

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

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

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

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

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

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

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

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

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

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

Share this post


Link to post
Share on other sites
1 час назад, MaltsevIgor11061983 сказал:

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

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this