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

 
 
6 страниц V  < 1 2 3 4 > »   
Reply to this topicStart new topic
> at91, помогите разобраться
injen-d
сообщение Aug 17 2008, 14:31
Сообщение #16


Частый гость
**

Группа: Свой
Сообщений: 91
Регистрация: 10-10-07
Из: Воронежа
Пользователь №: 31 250



Цитата(aaarrr @ Aug 17 2008, 17:18) *
Если не трудно, приведите пример. Ну не знаю я в SAM'ах регистров, назначение которых может быть не понятно.
...
Велика - спать спокойно не смогу smile.gif
От каких ошибок может предостеречь использование AT91F_AIC_ConfigureIt?

Если Вы, когда начали изучать SAM7, имели достаточный опыт, или хотя бы у Вас неподалеку находился знающий коллега, который всегда подскажет, то никаких проблем, все понятно. А если не хватает опыта и некому подсказать, то даже совершенно пустяковые сомнения в правильности своего понимания проблемы могут стать серьезным препядствием и положить начало "копанию" не в ту сторону.
У меня, например, помню случались сомнения в правильности выбранной мной последовательности программирования регистров модуля при конфигурировании, и тут "подглядывание" в lib_AT91 помогало быстрее, что называется на примере, разобраться с проблемой.
Цитата
От каких ошибок может предостеречь использование AT91F_AIC_ConfigureIt?

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


--------------------
- Бендер, ты же робот, зачем тебе пить пиво?
- Незачем! Я могу бросить в любой момент!
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Aug 17 2008, 14:45
Сообщение #17


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



Мне схемотехник еще со старой работы сказал что код написанный с помощью этой библиотеки ему читать проще, чем код написанный в старом стиле по регистрам. Собственно для меняя код тоже более читаем - сразу понимаешь какое действие он производит.


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
injen-d
сообщение Aug 17 2008, 14:54
Сообщение #18


Частый гость
**

Группа: Свой
Сообщений: 91
Регистрация: 10-10-07
Из: Воронежа
Пользователь №: 31 250



Цитата(zltigo @ Aug 17 2008, 18:01) *
Ну в то, что сваять нечто вроде-бы работающее программистом не знающим почти ничего о железе - верю, а вот в "освоение" не верю совсем sad.gif Мрачное скопище исходников созданное для создания иллюзии простоты для менеджеров. Ну еще чего-нибудь чисто тестовое железячнику не вникающему ни в тонкости языка, ни в тонкости железа сваять и спихнуть работу.

Удивляет безкомпромиссность и безаппеляционность мнений наших Гуру. Да я согласен, что lib_AT91 далека от идеала в плане эффективности и целесообразности использования ее функций, но в качестве наглядного примера по конфигурации каждого модуля, для новичка она все таки имеет некоторую полезность.


--------------------
- Бендер, ты же робот, зачем тебе пить пиво?
- Незачем! Я могу бросить в любой момент!
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 17 2008, 15:00
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(injen-d @ Aug 17 2008, 18:31) *
У меня, например, помню случались сомнения в правильности выбранной мной последовательности программирования регистров модуля при конфигурировании, и тут "подглядывание" в lib_AT91 помогало быстрее, что называется на примере, разобраться с проблемой.

Как раз у AT91 периферию можно программировать практически в любой последовательности, не противоречащей здравому смыслу, в отличие от некоторых других процессоров.

Цитата(injen-d @ Aug 17 2008, 18:31) *
Например, от забывания запретить прерывания в случаях, когда это необходимо, или от забывания сброса флага прерывания. Всякое бывает.

Сброс флага необходим в одном единственном и крайне редком случае. И лучше это знать и понимать, а не лепить всюду одно и то же для перестраховки. Даже начинающему.

Цитата(injen-d @ Aug 17 2008, 18:31) *
Помоему, спор уже идет о вкусах, или спор ради спора. Неконструктивно.

Для меня это не спор ради спора, а попытка съэкономить себе время и нервы в дальнейшем.

Цитата(SpiritDance @ Aug 17 2008, 18:45) *
Мне схемотехник еще со старой работы сказал что код написанный с помощью этой библиотеки ему читать проще, чем код написанный в старом стиле по регистрам. Собственно для меняя код тоже более читаем - сразу понимаешь какое действие он производит.

Так это еще и новый стиль, оказывается. Куда катится этот мир?

Действие сразу понимаешь, когда видишь регистры и то, что в них пишется, а не однотипные ConfigureIt, EnableIt и т.п.
Go to the top of the page
 
+Quote Post
defunct
сообщение Aug 17 2008, 16:19
Сообщение #20


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(aaarrr @ Aug 17 2008, 18:00) *
Для меня это не спор ради спора, а попытка съэкономить себе время и нервы в дальнейшем.

Не понимаю каким боком чужой стиль касается Вас?! smile.gif

Стиль который Вы пропагандируете по своему хорош, (уверен многие присматриваются к вашим примерам и пытаются делать также), но не стоит его навязывать.

Цитата
Действие сразу понимаешь, когда видишь регистры и то, что в них пишется

Не правда, если не знать/забыть названия регистров, то они мало что скажут.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 17 2008, 16:30
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(defunct @ Aug 17 2008, 20:19) *
Не понимаю каким боком чужой стиль касается Вас?! smile.gif

Просто вижу часто и погружаюсь в депрессию sad.gif

Цитата(defunct @ Aug 17 2008, 20:19) *
Не правда, если не знать/забыть названия регистров, то они мало что скажут.

Если не знать/забыть содержимое функции (что гораздо вероятнее), то её название скажет не больше.

Напишу я, например:
Код
AT91F_PITInit(PIT, mck, 1000)

И что, понятно, что оно делает?
Go to the top of the page
 
+Quote Post
defunct
сообщение Aug 17 2008, 17:22
Сообщение #22


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(aaarrr @ Aug 17 2008, 19:30) *
Если не знать/забыть содержимое функции (что гораздо вероятнее),

Дык, исходники то есть, все в одном проекте. Забыли - всегда можно быстро подсмотреть.
Имена функций тоже не от балды - сами говорят за себя.

Цитата
Напишу я, например:
Код
AT91F_PITInit(PIT, mck, 1000)

И что, понятно, что оно делает?

Импровизирую - инициализирует PIT. (навскидку не вникая в регистры с периодом 1000 тиков частоты mck).
Если будет нужно точнее, подсмотрю в исходниках.
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Aug 17 2008, 17:25
Сообщение #23


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

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



Ну я бы еще отметил следующие. Atmel, особенно в последнее время, приводит достаточно много примеров по использованию своих процессоров. Так вот их использование или просто тестирование с использованием lib_xxx проще и быстрее.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 17 2008, 18:15
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(defunct @ Aug 17 2008, 21:22) *
Ипровизирую - инициализирует PIT. (навскидку не вникая в регистры с периодом 1000 тиков частоты mck).

Все так, за исключением ряда моментов smile.gif

1. не 1000 тиков а 1000мкс.
2. частота задается в мегагерцах (вот удобно - где-то в Гц, а где-то в МГц).
3. функция содержит ошибку, так как реальный интервал таймера PIT равен не PIV, а PIV+1.
4. я сделал ошибку, переставив 1000 и mck местами.

А в такой записи все как на ладони:
Код
#define PIT_HZ    1000

AT91C_BASE_PITC->PITC_PIMR = AT91C_PITC_PITEN | AT91C_PITC_PITIEN | ((mck + PIT_HZ * 8) / (PIT_HZ * 16) - 1);


Клянусь, функцию специально я не выбирал, и ошибку с PIV заметил только что.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 17 2008, 20:58
Сообщение #25


Гуру
******

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



Цитата(SpiritDance @ Aug 17 2008, 16:45) *
Мне схемотехник еще со старой работы сказал что код написанный с помощью этой библиотеки ему читать проще, чем код написанный в старом стиле по регистрам.

Ага, посмотрите, что я писал буквально об этом-же чуть выше. Только вот ведь беда если кто-то именуется у вас "схемотехником", то программированием он сколь-нибудь серьезно просто не владеет, а зачастую и не хочет.


Цитата(injen-d @ Aug 17 2008, 16:54) *
Удивляет безкомпромиссность и безаппеляционность мнений.....

Дык я тоже назвал целых два случая полезности таких "библиотек". А вообще причин появления таких приблуд несколько:
- Профессия программист стала массовой, но само слово уже не значит почти ничего;
- Куча "программистов" программируют вызывая некие функции API, OS, "драйверов", "библиотек" добавляя от себя 2+2=
- Производители хотят привлекать низкоквалифицированных программистов;
- Используя таких "программистов" и подсаживая их на какие-то библиотеки, copy-paste, дикие (но человек ко всему привыкает) конструкции типа AT91C_BASE_PITC->PITC_PIMR производитель чипов привязывает их и к своим контроллерам.
Многие довольны.



Цитата(sergeeff @ Aug 17 2008, 19:25) *
...их использование или просто тестирование с использованием lib_xxx проще и быстрее.

Про тестирование "схемотехником" согласен, а вот разумное использование возможностей железа крайне затруднено smile.gif.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Aug 18 2008, 06:44
Сообщение #26


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

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



Я считал, что "разумное использование возможностей железа" - это убедиться в том, что железо работает стабильно, быстро, без ошибок и решает твои задачи.
При этом твоя программа "читабельна" и понятна твоим коллегам. Именно поэтому и написал, что lib_xxx вполне удобоваримая вещь.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 18 2008, 07:47
Сообщение #27


Гуру
******

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



Цитата(sergeeff @ Aug 18 2008, 08:44) *
Я считал, что "разумное использование возможностей железа" - это убедиться в том, что железо работает стабильно, быстро, без ошибок и решает твои задачи.

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


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 18 2008, 09:54
Сообщение #28


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Еще один показательный пример для любителей lib_AT91 sad.gif
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Aug 18 2008, 12:13
Сообщение #29


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

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



Цитата(aaarrr @ Aug 18 2008, 13:54) *
Еще один показательный пример для любителей lib_AT91 sad.gif


Нормальный компилятор не должен ругаться на число параметров > 4 (ISO/IEC 9899 : 5.2.4.1 Translation limits -> 127 parameters in one function definition).

Ни в одной из имеющихся в моем архиве lib_xxx не обнаружил AT91C_BASE_AIC->AIC_IMR = 1 << AT91C_ID_PIOA;

Очевидно, что в lib_xxx полно ошибок. А кто мешает их исправить и пользоваться дальше?
Go to the top of the page
 
+Quote Post
SergeiCh
сообщение Aug 18 2008, 12:19
Сообщение #30


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 22-03-07
Из: Novosibirsk
Пользователь №: 26 415



По мне структуры хороши хотя бы тем, что при отладке в Eclipse/Insight позволяют очень удобно смотреть содержимое регистров. Лучшего способа, чем добавить такую "сущность" smile.gif в watch, я просто не знаю.
Go to the top of the page
 
+Quote Post

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

 


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


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