|
|
  |
at91, помогите разобраться |
|
|
|
Aug 17 2008, 14:31
|

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

|
Цитата(aaarrr @ Aug 17 2008, 17:18)  Если не трудно, приведите пример. Ну не знаю я в SAM'ах регистров, назначение которых может быть не понятно. ... Велика - спать спокойно не смогу  От каких ошибок может предостеречь использование AT91F_AIC_ConfigureIt? Если Вы, когда начали изучать SAM7, имели достаточный опыт, или хотя бы у Вас неподалеку находился знающий коллега, который всегда подскажет, то никаких проблем, все понятно. А если не хватает опыта и некому подсказать, то даже совершенно пустяковые сомнения в правильности своего понимания проблемы могут стать серьезным препядствием и положить начало "копанию" не в ту сторону. У меня, например, помню случались сомнения в правильности выбранной мной последовательности программирования регистров модуля при конфигурировании, и тут "подглядывание" в lib_AT91 помогало быстрее, что называется на примере, разобраться с проблемой. Цитата От каких ошибок может предостеречь использование AT91F_AIC_ConfigureIt? Например, от забывания запретить прерывания в случаях, когда это необходимо, или от забывания сброса флага прерывания. Всякое бывает. Помоему, спор уже идет о вкусах, или спор ради спора. Неконструктивно.
--------------------
- Бендер, ты же робот, зачем тебе пить пиво? - Незачем! Я могу бросить в любой момент!
|
|
|
|
|
Aug 17 2008, 14:54
|

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

|
Цитата(zltigo @ Aug 17 2008, 18:01)  Ну в то, что сваять нечто вроде-бы работающее программистом не знающим почти ничего о железе - верю, а вот в "освоение" не верю совсем  Мрачное скопище исходников созданное для создания иллюзии простоты для менеджеров. Ну еще чего-нибудь чисто тестовое железячнику не вникающему ни в тонкости языка, ни в тонкости железа сваять и спихнуть работу. Удивляет безкомпромиссность и безаппеляционность мнений наших Гуру. Да я согласен, что lib_AT91 далека от идеала в плане эффективности и целесообразности использования ее функций, но в качестве наглядного примера по конфигурации каждого модуля, для новичка она все таки имеет некоторую полезность.
--------------------
- Бендер, ты же робот, зачем тебе пить пиво? - Незачем! Я могу бросить в любой момент!
|
|
|
|
|
Aug 17 2008, 15:00
|
Гуру
     
Группа: Свой
Сообщений: 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 и т.п.
|
|
|
|
|
Aug 17 2008, 16:19
|

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

|
Цитата(aaarrr @ Aug 17 2008, 18:00)  Для меня это не спор ради спора, а попытка съэкономить себе время и нервы в дальнейшем. Не понимаю каким боком чужой стиль касается Вас?!  Стиль который Вы пропагандируете по своему хорош, (уверен многие присматриваются к вашим примерам и пытаются делать также), но не стоит его навязывать. Цитата Действие сразу понимаешь, когда видишь регистры и то, что в них пишется Не правда, если не знать/забыть названия регистров, то они мало что скажут.
|
|
|
|
|
Aug 17 2008, 16:30
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(defunct @ Aug 17 2008, 20:19)  Не понимаю каким боком чужой стиль касается Вас?!  Просто вижу часто и погружаюсь в депрессию  Цитата(defunct @ Aug 17 2008, 20:19)  Не правда, если не знать/забыть названия регистров, то они мало что скажут. Если не знать/забыть содержимое функции (что гораздо вероятнее), то её название скажет не больше. Напишу я, например: Код AT91F_PITInit(PIT, mck, 1000) И что, понятно, что оно делает?
|
|
|
|
|
Aug 17 2008, 17:22
|

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

|
Цитата(aaarrr @ Aug 17 2008, 19:30)  Если не знать/забыть содержимое функции (что гораздо вероятнее), Дык, исходники то есть, все в одном проекте. Забыли - всегда можно быстро подсмотреть. Имена функций тоже не от балды - сами говорят за себя. Цитата Напишу я, например: Код AT91F_PITInit(PIT, mck, 1000) И что, понятно, что оно делает? Импровизирую - инициализирует PIT. (навскидку не вникая в регистры с периодом 1000 тиков частоты mck). Если будет нужно точнее, подсмотрю в исходниках.
|
|
|
|
|
Aug 17 2008, 18:15
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(defunct @ Aug 17 2008, 21:22)  Ипровизирую - инициализирует PIT. (навскидку не вникая в регистры с периодом 1000 тиков частоты mck). Все так, за исключением ряда моментов  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 заметил только что.
|
|
|
|
|
Aug 17 2008, 20:58
|

Гуру
     
Группа: Свой
Сообщений: 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 проще и быстрее. Про тестирование "схемотехником" согласен, а вот разумное использование возможностей железа крайне затруднено  .
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Aug 18 2008, 07:47
|

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

|
Цитата(sergeeff @ Aug 18 2008, 08:44)  Я считал, что "разумное использование возможностей железа" - это убедиться в том, что железо работает стабильно, быстро, без ошибок и решает твои задачи. Насколько я понимаю, Ваш бизнес изготовление демо бордов? Для быстрой, не вникая в подробности и нюансы железа, проверки, что в каких-то режимах железо в принципе работает? Против пригодности для этого не возражал ни разу.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Aug 18 2008, 12:13
|
Профессионал
    
Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007

|
Цитата(aaarrr @ Aug 18 2008, 13:54)  Еще один показательный пример для любителей lib_AT91  Нормальный компилятор не должен ругаться на число параметров > 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 полно ошибок. А кто мешает их исправить и пользоваться дальше?
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|