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

 
 
> Как ПРАВИЛЬНО программировать на С++, Вопросы по программированию на С++ для микроконтроллеров.
Serega Doc
сообщение Jul 26 2010, 14:25
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 267
Регистрация: 11-11-04
Из: Одесса
Пользователь №: 1 103



Добрый день. Учусь программировать на С++.
И иногда возникают вопросы в правильном проектировании классов.
Сейчас описываю класс для работы с последовательными регистрами 74HC595.
Уже есть класс для работы с SPI.
Где инициализировать SPI блок AT Mega 168 в классе работы с регистром или же глобально во всей программе.
Сейчас SPI будет использоваться только в регистрах.
Но в будущем планирую параллельно регистрам подключить еще и FLASH память (еще один класс по работе с памятью FLASH) на SPI.

Что посоветуете?

Вдогонку PS
И как правильно писать классы для регистров и FLASH наследовать от SPI или же внутри классов объявлять член класса SPI?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SasaVitebsk
сообщение Sep 7 2010, 10:20
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Мне кажется, всётаки, что сравнение переходов ASM->C и C->C++ некоректно. Так как первый решает главную задачу - убирает зависимость программиста от процессора (не от переферии). Эта задача глобальна для эмбеддера. И эта задача решается как академически так и практически. Соответственно повышается переносимость, возможность заимствований. Вроде бы переход C->C++ академически решает те же задачи. Но, на мой взгляд дальнейшие шаги в данной области целесообразны лишь при однотипных задачах.
Например, если программист непрерывно работает с графикой, то лучше потратить кучу времени написать и вылизать соответствующие классы работы с графикой. Но если он сегодня работает с ШД, а завтра с CAN, а послезавтра с графикой, то возникают нюансы.
Собственно эти нюансы просты. Написал я свои классы на тему конечных автоматов - потратил время. Вылизал - потратил время. А далее написал 10 проектов никакого отношения к этому не имеющещих. Через 2 года у меня появилась тема где, казалось бы можно применить наработки по конечным автоматам. И что будет? Я потрачу минимум неделю чтобы всё вспомнить и проникнуться высоким уровнем моих наработок, ещё неделю чтобы соотнести то решение с новым проектом. Естественно выяснится, что в чистом виде это чуть-чуть не подходит. И надо добавить пару новых свойств и чуть подправить реализацию. Причём лучше это сделать так, чтобы новый класс работал бы и со старым приложением. Надо честно признаться (хотя бы себе), что создавать новый класс, производный от старого, учитывая что старый писали тоже вы и, учитывая, что вы просто не учли вот этот вот нюанс, что вылез в новом проекте, вы не станете. Далее вам опять придётся проникнуться всеми нюансами разработки вашего класса, опять потребуется время для написания и отладки, чтобы через год-два вам мифически было бы проще всё это использовать.
Конечно, можно сказать что это произойдёт в случае низкого уровня программиста. А я вам возражу, что в случае низкого уровня программиста этот класс придётся переписать заново, а не чуть-чуть подправить.

По-моему, С++ это всётаки удел крупных контор с большим коллективом программистов, с чётким разделением задач, с проектами близкой направленности, с хорошей документированностью наработок и т.д и т.п. Пытаться одному программисту "охватить необъятное" (читай ... изучить и использовать все новейшие течения в области программирования) будет провальным. Из-за физической невозможности.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Serega Doc   Как ПРАВИЛЬНО программировать на С++   Jul 26 2010, 14:25
- - Serega Doc   Это глупый вопрос который обсуждали миллион раз?   Jul 27 2010, 06:43
- - Mahagam   нет. как-то це-крест-крест не сильно прижился у эм...   Jul 27 2010, 08:41
|- - Dima_G   Цитата(Mahagam @ Jul 27 2010, 15:41) нет....   Jul 27 2010, 08:48
- - AHTOXA   Цитата(Serega Doc @ Jul 26 2010, 20:25) Г...   Jul 27 2010, 08:53
|- - Ink   Цитата(AHTOXA @ Jul 27 2010, 12:53) Насле...   Jul 29 2010, 12:50
|- - Dima_G   Цитата(Ink @ Jul 29 2010, 19:50) А не пок...   Jul 29 2010, 13:15
- - Serega Doc   Спасибо все заработало. Что бы не плодить тем буду...   Jul 27 2010, 13:29
|- - ReAl   Ну оно "так и надо по теории". Сама флеш...   Jul 27 2010, 17:31
- - neiver   У меня есть некоторые интересные наработки на Си п...   Jul 29 2010, 15:03
|- - demiurg_spb   Приведите для интереса asm листинг того, во что э...   Jul 29 2010, 16:51
|- - Dima_G   Цитата(neiver @ Jul 29 2010, 22:03) У мен...   Jul 30 2010, 05:56
- - neiver   Для Кодtypedef PinList<Pa1, Pa2, Pa3, Pb3, Pb...   Jul 30 2010, 09:21
- - Ink   ЦитатаОбъекты от статических членов не будут дубли...   Aug 2 2010, 07:43
- - sergeeff   ЦитатаНифига не понял. Если вы посмотрите на sizeo...   Aug 2 2010, 08:03
- - Mahagam   программисты на Си обсуждают и решают проблемы кон...   Aug 2 2010, 09:51
|- - MrYuran   Цитата(Mahagam @ Aug 2 2010, 13:51) прогр...   Aug 2 2010, 09:57
|- - sergeeff   Цитата(Mahagam @ Aug 2 2010, 12:51) прогр...   Aug 3 2010, 10:03
- - Ink   ЦитатаЕсли вы посмотрите на sizeof(A) и наследуемы...   Aug 3 2010, 07:08
|- - Dima_G   Цитата(Ink @ Aug 3 2010, 14:08) Это как т...   Aug 3 2010, 13:16
|- - halfdoom   Цитата(Ink @ Aug 3 2010, 10:08) но когда ...   Sep 7 2010, 09:21
|- - Dima_G   Цитата(halfdoom @ Sep 7 2010, 16:21) Вот ...   Sep 7 2010, 09:40
|- - halfdoom   Цитата(Dima_G @ Sep 7 2010, 12:40) А в че...   Sep 7 2010, 11:39
- - Mahagam   я и смотрю широко. война с конструкциями языка (и ...   Aug 3 2010, 07:53
|- - sergeeff   Цитата(Mahagam @ Aug 3 2010, 10:53) я и с...   Aug 3 2010, 08:26
- - Mahagam   где вы ратование за ассемблер увидели????   Aug 3 2010, 09:59
- - Mahagam   и где я упоминал ассемблер??? поясняю - программер...   Aug 3 2010, 11:15
|- - sergeeff   Цитата(Mahagam @ Aug 3 2010, 14:15) и где...   Aug 3 2010, 11:48
|- - Ink   Цитата(Mahagam @ Aug 3 2010, 15:15) прогр...   Aug 3 2010, 12:24
- - neiver   Вы, видимо мало на С++ программировали... На С++ ...   Aug 3 2010, 11:29
- - Mahagam   во налетели. ещё раз. чисто наблюдения показывают...   Aug 3 2010, 12:50
|- - sergeeff   Цитата(Mahagam @ Aug 3 2010, 15:50) во на...   Aug 3 2010, 12:59
||- - Mahagam   QUOTE (sergeeff @ Aug 3 2010, 15:59) Учит...   Aug 3 2010, 14:51
|- - MrYuran   Цитата(Mahagam @ Aug 3 2010, 16:50) во на...   Aug 3 2010, 13:05
|- - ReAl   Цитата(Mahagam @ Aug 3 2010, 15:50) ещё р...   Aug 3 2010, 14:54
- - Mahagam   стандартов на языки понаделали давно. с появлением...   Aug 3 2010, 16:13
|- - MrYuran   Цитата(Mahagam @ Aug 3 2010, 20:13) на пл...   Aug 3 2010, 17:05
||- - sergeeff   Цитата(MrYuran @ Aug 3 2010, 20:05) Поэто...   Aug 3 2010, 17:44
||- - MrYuran   Цитата(sergeeff @ Aug 3 2010, 21:44) С ег...   Aug 3 2010, 18:12
||- - sergeeff   Цитата(MrYuran @ Aug 3 2010, 21:12) А что...   Aug 3 2010, 18:32
|- - ReAl   Цитата(Mahagam @ Aug 3 2010, 19:13) станд...   Aug 3 2010, 17:10
- - Savrik   Управляеймый код, конечно, хорошо в своей области,...   Aug 3 2010, 19:09
- - Mahagam   ReAl при чём тут ниша и контроллеры? если обсуждаю...   Aug 4 2010, 07:49
|- - sergeeff   Цитата(Mahagam @ Aug 4 2010, 10:49) ReAl ...   Aug 4 2010, 08:06
|- - XVR   Цитата(Mahagam @ Aug 4 2010, 11:49) ReAl ...   Aug 11 2010, 09:20
|- - alexvok   Посоветуйте пажалуйста книгу С++ с примерами для ...   Aug 19 2010, 10:32
|- - demiurg_spb   Цитата(alexvok @ Aug 19 2010, 14:32) Посо...   Aug 19 2010, 14:11
|- - MrYuran   Цитата(alexvok @ Aug 19 2010, 14:32) С++ ...   Aug 23 2010, 07:33
|- - xelax   Цитата(MrYuran @ Aug 23 2010, 11:33) У ...   Aug 25 2010, 08:38
|- - MrYuran   Цитата(xelax @ Aug 25 2010, 12:38) Я то н...   Aug 25 2010, 08:48
|- - DRUID3   Цитата(xelax @ Aug 25 2010, 11:38) Этап п...   Sep 5 2010, 18:11
|- - MrYuran   Цитата(DRUID3 @ Sep 5 2010, 22:11) Хороша...   Sep 6 2010, 11:34
- - Rst7   QUOTE (хотя я удивлялся — почему на "ДВК-2...   Aug 4 2010, 08:15
- - Serega Doc   Добрый день. Неожиданно был удивлен что здесь из-з...   Aug 5 2010, 04:10
|- - Ink   Цитата(Serega Doc @ Aug 5 2010, 08:10) Мо...   Aug 5 2010, 06:34
- - neiver   А чем собственно call не угодил? Хотите пару такто...   Aug 5 2010, 07:21
- - Serega Doc   Спасибо за рекомендации. inline я активно использ...   Aug 5 2010, 08:37
- - neiver   Примеры есть у меня, есть и свой подход к программ...   Aug 19 2010, 14:40
|- - 777777   Цитата(neiver @ Aug 19 2010, 18:40) А так...   Aug 20 2010, 08:32
|- - MrYuran   Цитата(777777 @ Aug 20 2010, 12:32) Я, в ...   Aug 20 2010, 08:37
|- - 777777   Цитата(MrYuran @ Aug 20 2010, 12:37) Да х...   Aug 20 2010, 11:15
|- - MrYuran   Цитата(777777 @ Aug 20 2010, 15:15) Это л...   Aug 20 2010, 11:39
|- - dxp   Цитата(777777 @ Aug 20 2010, 18:15) Нет, ...   Aug 20 2010, 12:43
|- - MrYuran   Цитата(dxp @ Aug 20 2010, 16:43) Кстати, ...   Aug 21 2010, 16:37
- - ReAl   Ну вот как раз сегодняшний пример. ATmega48. Прог...   Aug 21 2010, 18:24
|- - 777777   Цитата(ReAl @ Aug 21 2010, 22:24) Кстати,...   Aug 24 2010, 11:21
|- - ReAl   Цитата(777777 @ Aug 24 2010, 14:21) Да эт...   Aug 24 2010, 15:15
- - neiver   Идея интересная. Я статью по этой теме пишу - ника...   Aug 23 2010, 08:33
- - Andron_   по осени начал писать проект для сигнальника TI, р...   Aug 24 2010, 14:10
- - ReAl   Я бы сказал так — по сравнению с С язык С++ более ...   Aug 25 2010, 11:19
|- - dxp   Цитата(ReAl @ Aug 25 2010, 18:19) Я бы ск...   Aug 26 2010, 05:54
- - Waso   Цитата(neiver @ Aug 19 2010, 21:40) Приме...   Sep 3 2010, 05:35
|- - sergeeff   Цитата(Waso @ Sep 3 2010, 09:35) А как на...   Sep 3 2010, 14:58
- - Waso   В чем же она заключается, наивность-то?   Sep 3 2010, 15:07
|- - Harvester   Цитата(Waso @ Sep 3 2010, 19:07) В чем же...   Sep 7 2010, 11:27
|- - MrYuran   Цитата(Harvester @ Sep 7 2010, 15:27) А ...   Sep 7 2010, 11:44
- - sigmaN   ЦитатаХорошая статья что-бы задуматься - а туда ли...   Sep 6 2010, 20:52
|- - neiver   Цитата(sigmaN @ Sep 7 2010, 00:52) А вы н...   Sep 7 2010, 08:32
|- - DRUID3   offtop Цитата(sigmaN @ Sep 6 2010, 23:52...   Sep 7 2010, 14:57
- - one_man_show   В своей практике стараюсь сделать примеры применен...   Sep 7 2010, 10:54
- - sigmaN   Блни, а зря оффтоп прикрыли. Вот щас про Торвальд...   Sep 7 2010, 23:01
|- - Сергей Борщ   Цитата(sigmaN @ Sep 8 2010, 02:01) Один м...   Sep 8 2010, 06:16
|- - halfdoom   Цитата(sigmaN @ Sep 8 2010, 02:01) Прям 3...   Sep 8 2010, 14:50
- - sigmaN   Нет, точно пора завязывать, оффтоп же!   Sep 8 2010, 09:13
- - neiver   Господа/Товарищи/Эмбеддеры/Радио коты (нужное подч...   Sep 9 2010, 15:30
|- - MrYuran   Цитата(neiver @ Sep 9 2010, 19:30) Господ...   Sep 10 2010, 06:03
|- - Сергей Борщ   Цитата(neiver @ Sep 9 2010, 18:30) Констр...   Sep 10 2010, 08:32
|- - Сергей Борщ   Подход замечательный. Обязательно использую в ближ...   Sep 10 2010, 09:57
|- - ReAl   Цитата(Сергей Борщ @ Sep 10 2010, 12:57) ...   Sep 10 2010, 11:43
|- - halfdoom   Цитата(ReAl @ Sep 10 2010, 15:43) p.s[0] ...   Sep 11 2010, 05:54
|- - ReAl   Цитата(halfdoom @ Sep 11 2010, 08:54) Поз...   Sep 11 2010, 07:27
||- - halfdoom   Цитата(ReAl @ Sep 11 2010, 10:27) Если бы...   Sep 11 2010, 11:46
|- - MrYuran   Цитата(halfdoom @ Sep 11 2010, 09:54) Поз...   Sep 11 2010, 08:39
||- - halfdoom   Цитата(MrYuran @ Sep 11 2010, 11:39) Ну т...   Sep 11 2010, 12:11
|- - dxp   Цитата(halfdoom @ Sep 11 2010, 12:54) Поз...   Sep 11 2010, 11:49
- - WHALE   Кодvoid LCDwrite4(uint8_t value) { LDP ...   Sep 10 2010, 09:55
- - BSVi   Уже некоторое время пишу на плюсах в эмбеддед-прое...   Sep 12 2010, 06:58
- - neiver   Я исправил высказынные замечания и некоторые опеча...   Sep 12 2010, 08:14
- - sigmaN   Великолепная статья! Самому очень понравилась...   Sep 12 2010, 23:05
2 страниц V   1 2 >


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 11:24
Рейтинг@Mail.ru


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