0
У меня одного вылетает от такой последовательности:
1) запуск, жмем ОК на рамке с ошибкой
2) в открывшемся дереве жмем ОТМЕНА (кстати оно позади всех открытых окон)
3) набиваем немного абракадабры в редакторе
4) жмем крест в правом верхнем углу (пытаемся закрыть)
5) в появившейся рамке жмем Отмена
6) Fail
???
+2
Думаю, все понимают, что благодаря ООП программы становятся понятными, читаемыми, логичными что-ли. Сам пишу на ПК. Но во встраиваемых приложениях, какими бы простыми или сложными они ни были, очень часто важным становится время реакции на какое-либо воздействие. Лишние вызовы функций (или методов класса) — непозволительная роскошь. Да, можно открыть члены класса, использовать прямой доступ, но тогда и приходим к «Си-структуры-дефайны-хардкор». Наглядной становится только инициализация, например TIM4.init(). Но в этом случае это то же самое, что и вызов простой С-функции Init_TIM4(). Вот и получается, что использование классов во многих случаях не дает никаких преимуществ.
В защиту ООП можно сказать, что там, где не критична скорость выполнения, его использование сделает программу более читаемой и модифицируемой.
  • avatar
  • sva_omsk
  • 10 февраля 2015, 14:19
+5
Надо будет — и ассемблер заюзаем! Все от задачи зависит. В большинстве случаев встраиваемое приложение не настолько сложно, чтобы использовать ООП.
  • avatar
  • sva_omsk
  • 10 февраля 2015, 11:37
0
Да, хобби оно такое, может превратить рутинную работу в увлекательную, да еще и пользу принести
  • avatar
  • sva_omsk
  • 10 февраля 2015, 09:42
+3
void TIM4_config(TIM4_config_type config)
У вас одна функция на конфиг одного таймера, для других будет все то же самое. Следовательно, логичным следующим шагом будет передавать номер таймера в функцию. Будет что-то подобное:
void TIMx_config(TIMx, TIMx_config_type)

Ничего не напоминает? Вы идете по пути создания SPL, где все это уже реализовано и отлажено. Осталось только добавить дефайны (или «именованные константы»). Именно поэтому
Такой способ конфигурации я почему-то нигде не встречал, хотя он вполне имеет право на жизнь.
Сделать аналог стандартной библиотеки — это гигантская работа, которая при наличии этой же самой SPL как-то не является необходимой. Тем более, что среды разработки, обновляясь, включают последние версии SPL, поддерживающие новые МК. Самописная библиотека всегда будет на шаг (а то и два) позади них.
P.S. за проделанную работу однозначно плюс, хоть я и не сторонник использования подобных либ.
P.P.S. два раза почти подряд определено
#define CLK_DIS         0  
#define CLK_EN          1
  • avatar
  • sva_omsk
  • 10 февраля 2015, 07:51
0
Да, игрушка весьма забавная! А первая фраза в статье вобще заслуживает отдельный плюс)
  • avatar
  • sva_omsk
  • 03 февраля 2015, 08:17
0
Однозначный плюс! Проект непростой. Единственное, чего бы хотелось еще увидеть, так это фото готового блока управления (с экраном который) и его внутреннюю компоновку.
  • avatar
  • sva_omsk
  • 29 декабря 2014, 18:02
0
Ограничение на размер существенно меньше — 100х80.
  • avatar
  • sva_omsk
  • 20 декабря 2014, 08:12
0
да, согласен)
  • avatar
  • sva_omsk
  • 13 декабря 2014, 12:28
0
Что есть теплое и что есть мягкое? Подстроечник и подстроечник? Я ничуть не против примененного вами резистора, даже смайлик есть. Сам такие применяю, просто видимо понятие «миниатюрный» у всех разное.
  • avatar
  • sva_omsk
  • 13 декабря 2014, 11:59
0
Подстроечник я бы не назвал «миниатюрным»:) Бывают гораздо меньших габаритов (pdf).
  • avatar
  • sva_omsk
  • 12 декабря 2014, 22:10
0
А что в этом такого? На отладке я спокойно делаю графический интерфейс (дисплей на ili9341), который довольно таки непростой и делается не за один день. В это время все части проекта: платы и корпус со всеми крутилками и кнопками на морде, лежат в шкафу, а не валяются на столе. Ну люблю я порядок. А для переноса на STM достаточно изменить 3 функции, они у меня есть и проверены.
Динамическую индикацию на четыре 3-разрядных индикатора недавно делал, так вобще в протеусе отлаживал, тоже на меге16. На STM32F100 перенеслась на ура.
Я же не говорю ВСЮ логику на отладке прогонять, для этого существует прототипирование. Вот там уже программа и проверяется в боевых условиях. Но какие то отдельные ее части можно делать и на отладке с другим МК.
  • avatar
  • sva_omsk
  • 11 декабря 2014, 19:19
0
Да, это сильно, и для такого отладка необходима, согласен. На самом оборудовании не потестить.
  • avatar
  • sva_omsk
  • 11 декабря 2014, 18:42
-1
Да, мне не приходилось модифицировать чужие программы. Нужды как то не было, поэтому сложно представить подобную ситуацию. Можете конкретный пример привести? А то все «чужое» оборудование, которое мне приходилось использовать, прекрасно работало и без вмешательства в его кишки.
  • avatar
  • sva_omsk
  • 10 декабря 2014, 21:50
0
Ну вы и разошлись)
По моему скромному мнению, делать подобные универсальные модули — это лишнее. Отладочная плата нужна для чего? Чтобы отлаживать. Алгоритмы. А зачем для отладки алгоритмов делать «железную» основу под каждый проц? У меня например есть отладка на 16-й меге. При этом я писал программы как для AVR, так и для STM32 и даже один раз, надеюсь последний, на PIC. Отладив алгоритм на меге, не составляет никакого труда перенести его на целевой контроллер. Ни разу не было сложностей. С подключением проца тоже никаких проблем. Более того, в последнее время отладку использую только для исследования какой либо детальки, а проц тут — последнее дело, меги хватает. Вот и получается, что универсальный модуль сильно и не нужен. ИМХО, естесственно.
  • avatar
  • sva_omsk
  • 10 декабря 2014, 20:20
0
Я бы подобрал постоянные резисторы высокой точности (не больше 1%). А так да, подойдет.
  • avatar
  • sva_omsk
  • 09 декабря 2014, 16:38
0
Сопротивление подбирается исходя из максимального тока ИОН
  • avatar
  • sva_omsk
  • 08 декабря 2014, 21:45
0
Не вижу никаких проблем. Можете и поставить 200 Ом. Правда сам никогда не ставил.
  • avatar
  • sva_omsk
  • 08 декабря 2014, 21:42
0
Использовал ADR5041. Точность и стабильность порадовала.
  • avatar
  • sva_omsk
  • 08 декабря 2014, 20:57
0
Приятно то приятно, лишь бы пользовались. Есть уже не один пример, когда люди купив/сделав отладочную плату, сделали на ней «Hello, world» и забросили в дальний ящик. Когда делаешь реальное устройство, а не просто детальку изучаешь, удобней делать прототип и на нем отлаживать ПО и схему (если потребуется).
  • avatar
  • sva_omsk
  • 07 декабря 2014, 16:55