Освоение азов программирования, на архитектуре Stm32 Cortex

Всё о ЧПУ (CNC). Компоненты, станки, программы.
dimondss
Реальное имя: Дмитрий
Откуда: Ивано-Франковск

Освоение азов программирования, на архитектуре Stm32 Cortex

Сообщение dimondss » 28 дек 2016, 07:31

Ну если ножки дергать програмно поштучно то конечно чем больше ножек тем больше команд и тем больше тактов нужно.
Но целый порт (все 16 ног) можно одной командой поменять состояние (закинув соответствующее число в ODR).

Аватара пользователя
Автор темы
T-Duke

Освоение азов программирования, на архитектуре Stm32 Cortex

Сообщение T-Duke » 28 дек 2016, 08:26

chkmatulla писал(а):Источник цитаты Как программа это распределяет ?
Это распределяет программист, при создании программы. Есть такое понятие как императивное программирование. Язык С заточен под это. И тут все на программиста перекладывается. Он пишет программу так чтобы все распределялось правильно. А вот в декларативных языках по другому. Но для МК пока нет качественных реализаций декларативных языков.

Так что все остается за человеком. Как он распределит порядок вычислений, в момент написания программы, так все и будет работать.
Technology is insignificant comparing to the power of the Force.

Аватара пользователя
Автор темы
T-Duke

Освоение азов программирования, на архитектуре Stm32 Cortex

Сообщение T-Duke » 28 дек 2016, 08:55

Walter, майне фройнде, не старайся сейчас понять многие отвлеченные вещи. Поставь себе новую простую цель и начни попытки создать алгоритм осуществления. Не хочешь бегущие огни под елку, тогда что-то другое. Самобеглую тележку там, или игрушку какую-то роботизируй, или еще что. Контроллер у тебя достаточно мощный для алгоритмов повышенной сложности или неоптимальных. Пытайся что-то задумать и воплотить. А когда что-то запилишь, некоторые вещи прояснятся. Затем новая цель, новый запил, и что-то новое прояснится. Это самый действенный способ изучить что-то.
Technology is insignificant comparing to the power of the Force.

dimondss
Реальное имя: Дмитрий
Откуда: Ивано-Франковск

Освоение азов программирования, на архитектуре Stm32 Cortex

Сообщение dimondss » 28 дек 2016, 09:29

Да, именно так как написал T-Duke и стоит делать. Ставить задачу и последовательно решать. Я так и делал всегда.
1. Помигать одним светодиодом, считывать кнопки
2. Выводить в порт число (светодиоды будут отображать его в двоичном коде)
3. Сделать бегущую строку, ШИМ регулирование яркости или что то подобное.
4. Подключить 7 сегментные индикаторы и попробовать написать прогу которая будет преобразовывать числа в семисегментный код. Потом многоразрядный сделать с динамической индикацией.
5. Можно уже пораздуплять RTC(часы) (во многих сериях СТМ32 они встроены) и сделать часы.
6. Подключить символьный дисплей 1602 (HD44780) Под это дело я сам свою библиотеку писал, чтоб потренироваться, но можно найти и готовое.
И так далее усложняя задачи.

Для начала понадобятся такие вещи как конфигурация тактирования, GPIO и задержки. Все это без проблем ищется в гугле.
Есть некоторые нюансы правда в реализации тех или иных высокоуровневых функций в разных средах разработки. Наиболее распостранены Keil и CooCox.
Кстати есть еще такие вещи как SPL и HAL. Это типа готовые библиотеки функций (в основном оно для совмеастимости вашей программы с разными контроллерами) Использовать их или нет решать Вам. Я например не особо использую. Чаще просто к регистрам обращаюсь. Ну для конфигурации GPIO опять же написал свои функции (хотя тут можно как раз готовые использовать).

Аватара пользователя
Автор темы
T-Duke

Освоение азов программирования, на архитектуре Stm32 Cortex

Сообщение T-Duke » 28 дек 2016, 09:45

dimondss писал(а):Источник цитаты Кстати есть еще такие вещи как SPL и HAL
Настоящие джедаи не используют это, работая напрямую с регистрами, а Темный лорд запиливает свои библиотеки совместимости между семействами. Мне например жутко не нравится распухание кода, если использовать Cube, поэтому нафиг эти кубы.
Technology is insignificant comparing to the power of the Force.

Аватара пользователя
chkmatulla
Реальное имя: Walter
Откуда: Schwedt

Освоение азов программирования, на архитектуре Stm32 Cortex

Сообщение chkmatulla » 28 дек 2016, 10:29

Ребята, я пока не буду отвлекаться на другие среды, буду придерживаться рекомендаций Тёмного Лорда...
И это, я тут ещё открытие сделал, оказывается у меня не только обычная память пропала, так ещё и зрительная уже сильно сдала. Я теперь совсем деревянный стал. Поэтому, буду очень медленно двигаться, мне нужно сотни раз одно и то же повторить, пока что- то в голове останется. Вот сейчас как раз и пытаюсь запомнить эти ангельские сокращения, чтобы мог дальше двинуться.
Секс не предлагать. Могу согласиться.

dimondss
Реальное имя: Дмитрий
Откуда: Ивано-Франковск

Освоение азов программирования, на архитектуре Stm32 Cortex

Сообщение dimondss » 28 дек 2016, 14:33

T-Duke писал(а):Источник цитаты не нравится распухание кода, если использовать Cube

Я куб использую исключительно чтоб посмотреть какие порты/функции на какой ножке :)
А с теми готовыми хал библиотеками там бывают конкретные засады. Выдает тебе ошибку при компиляции например, смотрищ тот файл - там приинклужен другой файл и так далее. хрен найдешь концы. То явно индусы писали те библиотеки :)

Vladimir52
Реальное имя: Владимир
Откуда: Мюнхен

Освоение азов программирования, на архитектуре Stm32 Cortex

Сообщение Vladimir52 » 29 дек 2016, 14:12

Освоение азов программирования, на архитектуре Stm32 Cortex


Минутка пессимизма.
По-моему, в самой теме лежит глубокое противоречие - нельзя (нормально) осваивать азы программирования микроконтроллеров на базе Stm32. На Atmel уровня ATmega8 - можно. На Atmel XMega - уже сложно, так как DMA, система сообщений, и многоуровневые прерывания. А на Кортексах вы Вальтеру всю голову сломаете.

ЗЫ: Не, я не отговариваю, мне бы тоже было интересно поковыряться в Stm32 чипах, если бы было время на это. Но получить требуемый результат, начиная с азов, не получится очень долго.

dimondss
Реальное имя: Дмитрий
Откуда: Ивано-Франковск

Освоение азов программирования, на архитектуре Stm32 Cortex

Сообщение dimondss » 29 дек 2016, 14:35

Собственно азы программирования проще вообще не на МК познавать :). МК уже требуют познаний в электронике а не только код писать (хотя некоторые ардуинщики утверждают обратное, но потом спрашивают где + и - у резистора :) ).
По сути в СТМ32 единственное что сложнее АВРок (для начала) - это всякие инициализации, например чтоб порт настроить там несколько регистров. Но это ты один раз нашел в гугле/даташите, написал функцию и используешь. Зато благодаря мощности ядра и количеству памяти нет такой требовательности к оптимальному коду. Никто не заставляет с нуля использовать ДМА и прочие сложные вещи.

И почему то именно на СТМ32 у меня реальные проекты и получились. А на авр в основном так прототипами и осталось все :). Но возможно что именно поучившись на АВР (там я в основном асемблером игрался, на сишке пару раз только под них пробовал писать) потом легче освоился с стм.

Аватара пользователя
Автор темы
T-Duke

Освоение азов программирования, на архитектуре Stm32 Cortex

Сообщение T-Duke » 29 дек 2016, 18:10

Vladimir52 писал(а):Источник цитаты По-моему, в самой теме лежит глубокое противоречие - нельзя (нормально) осваивать азы программирования микроконтроллеров на базе Stm32.
Ну если шире посмотреть, то в самой жизни человека кроется глубокое противоречие. Таковы начальные условия задачи. У человека есть плата и хочется что-то понять, на том что есть и не хочется тратить 10 лет на обычный путь от начинающего программиста к эмбеддеру. Тема была создана только потому, что был страждущий человек, на мучения которого не мог смотреть. Если бы он хотел учить программирование на яве под андроид, то разумеется этой темы бы не было.

На счет атмелов, проще ли, сложнее ли, не скажу безаппеляционно, я их не знаю и знать не хочу. Но на взгляд со стороны от заядлого стм-щика, не думаю что сильно проще на атмелах, а вот ограничений у них куда больше. Когда-то я начинал с очень неплохих камней 8051 от Силикон лабс. И могу сказать, что от кортексов по сравнению с 8051 я тащусь просто.

И вообще, по большому счету не важно на чем начинать, если есть опытные советчики под боком. Главное хотеть и пробовать. Дорогу осилит идущий.
Technology is insignificant comparing to the power of the Force.


Вернуться в «Системы ЧПУ»