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

 
 
5 страниц V  « < 3 4 5  
Reply to this topicStart new topic
> возможно ли на Си, объединить биты регистров портов микроконтроллера
SasaVitebsk
сообщение Jun 15 2009, 08:24
Сообщение #61


Гуру
******

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



Цитата(Dog Pawlowa @ Jun 14 2009, 13:49) *
Описываю весь доступ к портам через макросы в одном h-файле и не парюсь.
В прочих файлах НИКАКОГО упоминания о портах, только макросы с осмысленными названиями. Просто для понимания. Существенно упрощает портирование.
К сожалению, есть проблема инлайнить функции, определенные в других модулях, теоретически можно тоже через #include, но это уж точно на изврат похоже.

Поступаю также. Один в один.
Как раз для переносимости очень удобно. Чётко знаешь что этот файл придётся переписать.
Никакой неразберихи в файлах проекта у меня не возникает, так как там уже используются "осмысленные" макросы. Типа LED_ON или RG_STB. Для одного проекта (проца) может быть LED_ON единицей, для другого нулём. Это не имеет значение. Так как правится макрос, и он по макросу LED_ON загорается. (Естественно я упрощаю). Можно былобы ожидать, что этот файл большим будет, но на самом деле - совсем пустяковый. Всё сведено в одно место, сразу видны все биты и порты, видна их инициализация. Короче очень удобно.

Если разработчик работает в коллективе, то должны быть определены какие то общие правила оформления проекта. Они должны постоянно корректироваться. Разработчики должны их придерживаться. Если груповой проект, то должен составляться план поекта и какие-то доп правила оформления (к типовым правилам).
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Jun 15 2009, 08:33
Сообщение #62


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(ReAl @ Jun 15 2009, 11:03) *
Так значит тут - "на вкус и цвет", а макросы - снижают читаемость и сопровождаемость текста?


Макросы - это препроцессор, т.е. "до компилятора". Варианты if... и ? - компилятор. Вы лично часто изучаете листинг препроцессора? Уверен - почти никогда. Значит вы просто полагаетесь на то, что вы со своим многолетним опытом, ошибок при написании макросов не допускаете и препроцессор все сделал именно так, вы себе это представляете. А если ошибка есть, она трудноуловима (при одних данных есть, при других - нет, а еще хуже при одних типах данных - есть, при других - нет). Вам что больше по душе, чтобы компилятор вам хотя бы подсказывал про подобные потенциальные проблемы, или молча, по своему усмотрению чего-то там понаделал, а вы потом, "по вторичным половым признакам" аномального поведения программы это все вылавливали?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jun 15 2009, 10:43
Сообщение #63


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(SasaVitebsk @ Jun 15 2009, 11:24) *
Всё сведено в одно место, сразу видны все биты и порты, видна их инициализация....

...и взаимосвязь со взаимоисключениями. Причем, этот файл на самом деле и внутри сруктурирован - те-же биты, хоть и для светодиодов поименованы и соответсвенно ниже по файлу, т.е. уже уровнем выше smile.gif используются только эти имена. Все это хозяйство компактно, лаконично и достаточно легко изучается в том числе и глазами.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jun 17 2009, 08:57
Сообщение #64


Гуру
******

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



Цитата(zltigo @ Jun 15 2009, 13:43) *
...и взаимосвязь со взаимоисключениями. Причем, этот файл на самом деле и внутри сруктурирован - те-же биты, хоть и для светодиодов поименованы и соответсвенно ниже по файлу, т.е. уже уровнем выше smile.gif используются только эти имена. Все это хозяйство компактно, лаконично и достаточно легко изучается в том числе и глазами.

Именно так. Единственно, что я струкурирую по портам. Типа беру бит, обзываю его и объявляю макросы работы с ним с учётом специфики. Это даёт возможность не пропустить какой-либо бит. Так же комментирую этот бит если надо. С точки зрения программиста, часто схема просто не нужна. Точнее её он структурно представляет, а управление ей он читает именно в этом файле. При возвращении к проекту, чаще всего заглядываю именно в этот файл, для того чтобы вспомнить весь проект.
Кроме того с помощью условной компиляции, либо сменой данного файла, вы можете версию платы менять. Например в версии 1а сменили ноги при переразводке.
Go to the top of the page
 
+Quote Post

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

 


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


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