Перейти к содержанию
    

ИМХО, погорячились Вы немного, zltigo с последним примером. Вполне себе корректная хрень, если status объявить как U32 и использовать несколько прерываний от UART'а.

 

А вообще код жуткий, согласен. Отдельно хочется отметить использование дебильных функций AT91F_что-то_там.

 

Для начинающих вредная книга. Не рекомендую.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вполне себе корректная хрень, если status объявить как U32 и использовать несколько прерываний от UART'а.

Там нет нескольких прерываний :( нету и комментариев по этому поводу нет..И даже в этом случае накой там:

- чтение маски прерываний из контроллера?

- контроль AT91C_US_RXRDY в вызываемой функции.

В общем бездумно выдранный "из интернету" кусок, да и тот первоначально писанный левой ногой :(.

А вызов функции с задержками из обработчика прерывания это нормально? А реализация самих задержек это нормально? А масочка 0x1FF в той-же функции это нормально? А муть

while (!(AT91C_BASE_US0->US_CSR&AT91C_US_RXRDY)==1);

в той-же вызываемой функции с какого бодуна писана?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В случае нескольких прерываний читать маску приходится, никуда не деться.

 

Масочка 0x1ff скопипейщена с какого-нибудь девятибитного примера, наверное.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В случае нескольких прерываний читать маску приходится, никуда не деться.

Я не про читать ФЛАГИ я про чтение и накладывание маски IMR.

status &= AT91C_BASE_US0 -> US_IMR;

когда человек просто не знает, как работает его железо

Это часто, очнь часто, почти всегда встречается в халявных исходниках "из интернету", но тут ведь человек УЧЕБНИК яко-бы написал :( не зная ни языка ни контроллера, ни компилятора, ни IDE

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я не про читать ФЛАГИ я про чтение и накладывание маски IMR.

А флаги стоят всегда - спасибо фирме Atmel за наше счастливое детство.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А флаги стоят всегда - спасибо фирме Atmel за наше счастливое детство.

Стоят-то они стоят но смотреть-то на них зачем (даже аВТОР не смотрит :) ), если прерывания не разрешали??? Строкой ниже смотрится один конкретный флаг, если что вдруг, когда, потооом добавятся еще обработчики каких-то ситуаций, то они будут смотреть конкретно на свой флаг. Наличие этой мусорной строки необъяснимо ничем - просто "бубен".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Стоят-то они стоят но смотреть-то на них зачем (даже аВТОР не смотрит :) ), если прерывания не разрешали??? Строкой ниже смотрится один конкретный флаг, если что вдруг, когда, потооом добавятся еще обработчики каких-то ситуаций, то они будут смотреть конкретно на свой флаг. Наличие этой мусорной строки необъяснимо ничем - просто "бубен".

А если у меня, например, стоит флаг TXRDY, а соответствующее прерывание запрещено и обрабатывать я его не хочу?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А если у меня, например, стоит флаг TXRDY, а соответствующее прерывание запрещено и обрабатывать я его не хочу?

Мы это о чем? Никаких подобных "узоров" в обсуждаемом исходнике и близко нет. И сколь-нибудь полезных комментариев и указующей информации нет, и намеков на варианты подхода к делу нет :(. Наличие чтения и накладывания маски в этом исходнике не оправдано абсолютно ничем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В этом исходнике не оправдано, а вот в жизни вполне нормальная конструкция.

 

Если бы были комментарии, то для примера сошло бы. А так - да, из разряда бездумного копирования.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...

Такое "творчество" просто вредно читать начинающим.

Да здорово вы (zltigo & aaarrr) "обули" автора!

Вот только что же читать начинающим?

Все оппоненты утверждают, что создание подобных примеров займет не более дня!

Мужики сделайте доброе дело - напишите правильные примеры!

Хорошо бы их выложить в отдельном топике или в статьях, но так чтоб доступ был только по чтению.

 

Хочу сказать в защиту автора -> может с точки зрения стиля и не очень, но правильна сама задумка - короткие примеры нацеленные на демонстрацию работы с конкретной периферией.

 

А уж тем кто переходит с 8-разрядников, пример как "дрыгнуть" ногой, изначально сэкономит дня два!

Я уж не говорю про настройку среды IAR - при первых заходах мрачное зрелище, в смысле ее осмысления.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все оппоненты утверждают, что создание подобных примеров займет не более дня!

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

 

Мужики сделайте доброе дело - напишите правильные примеры!

Хорошо бы их выложить в отдельном топике или в статьях, но так чтоб доступ был только по чтению.

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

 

Я лично готов поделиться некоторыми примерами для SAM7S/SAM7X, если общественность это заинтересует.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

... нужен несколько иной подход. А время = деньги.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хочу сказать в защиту автора -> может с точки зрения стиля и не очень, но правильна сама задумка - короткие примеры нацеленные на демонстрацию работы с конкретной периферией.

Примеры чего? Того,как писать не надо? Может в России уже начали выпускать буквари в которых начинают вместо "Маша мыла раму" учить язык с "Аффтар пЫшы Ышшо"?

"Коротких примеров" сколь-нибудь полных для периферии сложнее светодиода на халяву не бывает. А для пина - смотрите в комплекте поставки IAR. Там будут и примеры проектов, и мигание светодиодом... Примеры есть обычно и сайте производителя - тоже, как правило не подарок, но и не такой мрак, как у аВТОРА сего шедевра.

Я уж не говорю про настройку среды IAR - при первых заходах мрачное зрелище, в смысле ее осмысления.

У IAR вполне приличная документация - просто надо ее ПРОЧИТАТЬ. Прочитать, а не рассматривать какие-то картинки-скриншоты зачем-то напечатанные на бумаге пытаясь понять как оно работает.

 

Пусть бы это было типа FAQ по SAM7S и пополнялось по мере...

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Очень многие вопросы по SAM7 снимаются поиском по этому форуму. Можно собрать в одну тему ссылки на обсуждения наиболее распространенных проблем.

 

Один FAQ уже есть, но он практически мертв :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот только что же читать начинающим?

Ответ банален - первоисточники.

http://www.atmel.com/dyn/products/alldatas...ily_id=605#1724

http://www.atmel.com/dyn/products/app_note...p?family_id=605

На худой конец в качестве ОБЗОРНОГО документа достаточно добротных западных писателей, типа http://www.hitex.com/download.html

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...