roboforum.ru

Технический форум по робототехнике.

 

С или C++

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Re: С или C++

Сообщение HarryStar » 19 авг 2011, 10:22

Вообще слово библиотека несколько шире. Это не только файлы "lib", но так же называют редко изменяемые куски кода, которые могут хранится наример на си в исходниках и подключаться к разным проектам. Свои или чужие, неважно.
У меня (думаю как и у многих) есть свои библиотеки, куда сложены различные функции, используемые в разных проектах.
Аватара пользователя
HarryStar
 
Сообщения: 973
Зарегистрирован: 15 ноя 2010, 13:56
Откуда: Нижний Новгород
прог. языки: С, С++, РНР

Re: С или C++

Сообщение MasterWizard » 28 сен 2011, 15:45

По теме топика: для контроллеров - почти всегда С (за исключением ассемблера, где он нужен), для РС - ситуативно, примерно 50/50
MasterWizard
 
Сообщения: 4
Зарегистрирован: 28 сен 2011, 13:54
Откуда: Украина
Skype: rea.in.ua
прог. языки: C, C++

Re: С или C++

Сообщение Nemod » 05 ноя 2011, 23:07

ИМХО
Си нужно применять там где нежелательно пользоваться динамическим выделением памяти(т.е использовать heap), если ОЗУ слишком мало. То есть на Си надо программировать для тех микроконтроллеров у которых озу обычно расположена в том же корпусе что и память программ и ядро начиная от пиков, авров, с51, 68 до arm7tdmi, renesas, arm cortex m3, m4.
Кроме того для некторых микроконтроллеров вообще нет приплюснутого компилятора.
Для ядер arm9, arm11, intel atom, cortex a8 уже можно применять обьектно-ориентированную модель и верхний уровень (ИИ например) писать на С++, при этом нижний уровень ПО часто используется написанный ранее на Си от другий более слабых процессоров.
Аватара пользователя
Nemod
 
Сообщения: 25
Зарегистрирован: 30 май 2005, 15:41
Откуда: Moscow

Re: С или C++

Сообщение Vooon » 06 ноя 2011, 09:48

И когда это в си были проблемы с динамической памятью? И что мешает использовать ООП в си?
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3324
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: С или C++

Сообщение mgalemin » 21 ноя 2011, 15:50

Тему можно переименовать на "Рубанок или стамеска" и продолжать спорить до хрипоты.
Аватара пользователя
mgalemin
 
Сообщения: 66
Зарегистрирован: 07 авг 2010, 06:36
Откуда: Sydney, Australia
прог. языки: C/C++

Re: С или C++

Сообщение =DeaD= » 21 ноя 2011, 15:57

Рубанок не включает в себя стамеску, как и наоборот :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

Re: С или C++

Сообщение mgalemin » 21 ноя 2011, 15:59

Хм, скажу по-другому: под каждую задачу - свой инструмент.
Аватара пользователя
mgalemin
 
Сообщения: 66
Зарегистрирован: 07 авг 2010, 06:36
Откуда: Sydney, Australia
прог. языки: C/C++

Re: С или C++

Сообщение uni » 09 янв 2012, 14:51

Пример экспериментов с C++ для AVR:
"Кросс-компиляторный шаблон (EC++, IAR, GCC), Попытка правильного проектирования сверху"
http://electronix.ru/forum/index.php?showtopic=92599

Тут можно посмотреть как выглядит код:
https://mysvn.ru/cop/portfolio/avr/Example/

Так выглядит симуляция его работы в Proteus:
https://mysvn.ru/cop/portfolio/avr/avr003.png

Пример кода настройки внутренностей mcu:
https://mysvn.ru/cop/portfolio/avr/Example/MCU.cpp

Эти примеры работают в двух средах программирования: IAR и AVR GCC (C++ оба). Т.е. один и тот же код компилируется и там и там.

Пишу на С++ ещё и потому, что сейчас большинство высокоуровневых IDE заточены именно под C++.
Вот пример проекта, обёрнутого в C++:
https://mysvn.ru/cop/portfolio/avr/RGBLeds/

Так выглядит симуляция его работы в Proteus:
https://mysvn.ru/cop/portfolio/avr/avr005.png

Мой набор инструментария:
https://mysvn.ru/cop/portfolio/avr/RGBLeds/readme.txt

Добавлено спустя 5 минут 50 секунд:
Vooon писал(а):И когда это в си были проблемы с динамической памятью? И что мешает использовать ООП в си?

Это как? Перегрузка функций что-ли есть?

На самом деле сейчас видно, что микроконтроллеры всё доступнее и доступнее, периферия внутри всё шире, они всё мощнее. Рано или поздно произойдёт переход на С++. Точно также, как многие писали на асме, но потом сравнили трудозатраты при кодинге на Си и перешли на Си.
Аватара пользователя
uni
 
Сообщения: 23
Зарегистрирован: 11 фев 2007, 21:13
Откуда: Екатеринбург
Skype: viacheslavmezentsev
прог. языки: VB6, C++, OPascal, C#, Java, Win32Asm, ...
ФИО: Мезенцев Вячеслав Николаевич

Re: С или C++

Сообщение elmot » 09 янв 2012, 16:35

+1 за ++
Вот только 3 дня тому что поскреб лысину и переименовал главый файл в .cpp :).
И первый объектик уже забабахал. Пришлось слегка помучать настройки проекта в keil, чтобы завелся менеджер памяти. Но по-моему уже окупилось. Диагностика компилятора гораздо более внятная, контроль типов построже, инкапсуляция рулит. В общем, рекомендую. IDE Keil 4.22, устройство - STM32F4-Discovery.
Аватара пользователя
elmot
 
Сообщения: 5674
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Пред.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

Mail.ru counter