реклама на сайте
подробности

 
 
> Как проще/правильнее сделать смену режимов встроенных OP усилителей?, компактный код
Make_Pic
сообщение Jun 23 2018, 05:16
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 779
Регистрация: 9-10-04
Из: Россия, Пермь
Пользователь №: 828



Есть микроконтроллер - MSP430F2274, у него есть встроенные операционные усилители - Вопрос: Как компактнее и проще написать код на С для смены режимов работы этих OP, переключение входов и выходов, изменение включения внутренних резисторов?

Просится оформить в виде структур, но как лучше сделать переключение/программирование режимов OP в зависимости от состояний программы?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
k155la3
сообщение Jun 25 2018, 07:58
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Цитата(Make_Pic @ Jun 23 2018, 08:16) *
Есть микроконтроллер - MSP430F2274, у него есть встроенные операционные усилители - Вопрос: Как компактнее и проще написать код на С для смены режимов работы этих OP, переключение входов и выходов, изменение включения внутренних резисторов?

Просится оформить в виде структур, но как лучше сделать переключение/программирование режимов OP в зависимости от состояний программы?

Учитывая достаточно скромные ресурсы по RAM для этого контроллера, CPP использовать возможно, но естественно при этом будет несколько больше расходоваться
RAM и flash. Если алгоритм прикладной задачи и объем данных небольших, то вполне возможно.
--
Для "упаковки" текста функционала вместо собственно функций можно использовать макросы.
Их использование увеличит быстродействие, улучшит читабельность кода и его "портабельность", если все макро-определения делать в одном h-файле.
(аналогично inline - функциям)
Код
#define PORT_CS   P1OUT
#define MASK_CS_FLASH  0x01
#define MASK_CS_RTC      0x02
#define CS_ACTIVE_FLASH  ( PORT_CS &= ~MASK_CS_FLASH )
#define CS_OFF       ( PORT_CS = 0xFF )

ps
у Ti есть MSP430Ware == driverlib.
Пробовал использовать их HAL, но "не пошло", выписывал потом все оптимально и компактно и собственноручно. В HAL-реализациях только подсматривал основы.

Цитата(Make_Pic @ Jun 25 2018, 05:10) *
И есть еще какие либо варинты смены реимов OP операациоников на лету?

"на лету" - это термин, или как ? Самое близкое к этому (?) - аппаратное прерывание и изменение конфигурации в обработчике евойном.
Поскольку из вопроса видно, что "не на лету" Вы уже реализовали, выкладывайте код.
Go to the top of the page
 
+Quote Post
Forger
сообщение Jun 25 2018, 08:10
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(k155la3 @ Jun 25 2018, 10:51) *
Учитывая достаточно скромные ресурсы по RAM для этого контроллера, CPP использовать возможно, но естественно при этом будет несколько больше расходоваться

Не пугайте народ: один и тот же код на CPP требует практически столько же RAM, как и голый C (разумеется, без дин. памяти). В больших и серьезных проектах эта разница может быть даже в пользу плюсов.
А вот c ROM ситуация не такая однозначная - тут все сильно зависит от проекта и опыта программиста: криворукий может на плюсах нагородить такой огород, что никакого проца не хватит.

зы. В контексте данной темы все равно не понятно, чего именно хочет ТС. Впрочем, как и в других его темах wink.gif
Подобные темы будет порождать холивары и офф. Это практически неизбежно.


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 15:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.02016 секунд с 7
ELECTRONIX ©2004-2016