Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
22.11.2011, 01:33
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
|
|
|
|
22.11.2011, 01:36
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от kison
|
Не все и не всегда инициализируют всю неиспользуемую периферию.
|
Дык... не все и знали об этом... теперь задумаются...
|
|
|
|
22.11.2011, 16:37
|
|
Гражданин KAZUS.RU
Регистрация: 04.04.2007
Сообщений: 941
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от kison
|
...Не все и не всегда инициализируют всю неиспользуемую периферию.... Пример с UART - взвелся флажок прерывания, попали на вектор, не предусмотренный программой. Ну не собирался программист использовать UART. Там сидит (r)jmp 0. Перешли, начали сначала. Разрешили прерывания и.. опять пошли в обработчик. Оттуда на 0 и опять.....
|
Может и так , но не всегда по случайной ошибке попадешь опять на этот нуль - на то она и случайная - что потом как раз все правильно ,как и предусмотрено прогой - отработается .Также еще дело в том какая именно реакция будет при попадании в непредусмотренное положение - с потерей перед этим наработанных данных или без потери (про wdr здесь не говорю ) и каким способом контроллер будет из них выходить - хотя в общем тесно связанная с описанием его поведения - это отдельная большая тема о надежности и безсбойности работы контроллера .
А инициировать неиспользуемую периферию рекомендую всегда - точняк избавит от некоторого количества непоняток например типа "а почему делаю в воей проге только то-то и то-то, а еще и что-то вклинивается в мою работу , либо блокирует совсем или мешает еще что-то , помогите " , а оказывается потом что по умолчанию оставил на усмотрение среды ,не отключил явно сам какие не надо блоки , а они и ресурс занимают ,и по тактам , и в прерывания могут долбиться , и прочее , прочее .
__________________
Короче асма кода нет !
|
|
|
|
22.11.2011, 16:49
|
|
Гражданин KAZUS.RU
Регистрация: 04.04.2007
Сообщений: 941
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от kison
|
...Какая разница - nop прописать или reti в вектора?...
|
Большая , будет именно разница в точном поведении контроллера и куда именно он потом вернется продолжать свою работу. Спор устарело ядро AVR или нет - нет смысла , так как все другие микроконтроллеры в схожих ситуациях с такими же по функции примерно командами ведут себя почти также .
P.S. Именно на асме и можно все куда хочешь собрать и как хочешь ,(про вектора ) , чего не скажешь про С .
__________________
Короче асма кода нет !
|
|
|
|
22.11.2011, 17:15
|
|
Прописка
Регистрация: 18.10.2010
Адрес: Planet Earth )
Сообщений: 120
Сказал спасибо: 14
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от kison
|
Никак. Пока не приспичит написать свой загрузчик - ...
|
Загрузчик...? Вот это что ли имеете ввиду http://www.gaw.ru/html.cgi/txt/app/m...avr/AVR109.htm
__________________
Мозги кипят, ядрить твою валентность!!! Пойду закладывать остальные ингредиенты...
Последний раз редактировалось DAVE_ELEKTRIK; 22.11.2011 в 20:53.
|
|
|
|
23.11.2011, 03:21
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от pinco
|
Большая , будет именно разница в точном поведении контроллера и куда именно он потом вернется продолжать свою работу.
|
Ну расскажите про разницу. На примере той же м8515. Допустим не используется вектор переполнения USART TXC. Остальные задействованы.
В чем разница - nop разместить на векторе или reti и что лучше в случае случайного попадания на этот вектор.
|
|
|
|
23.11.2011, 03:22
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Ну да. Это - тоже загоузчик. Можно и свой написать и грузиться с чего угодно. Хоть с SD карты.
|
|
|
|
24.11.2011, 00:50
|
|
Гражданин KAZUS.RU
Регистрация: 04.04.2007
Сообщений: 941
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от kison
|
...На примере той же м8515. Допустим не используется вектор переполнения USART TXC. Остальные задействованы.
В чем разница - nop разместить на векторе или reti и что лучше в случае случайного попадания на этот вектор.
|
В случае незапрещенности USART TXC и если там на этом векторе будет nop то при попадании на него просто выполнится прерывание ниже него , то есть "не совсем свое" , и прога снова возвратится в то место откуда прервалась , в случае же reti ,вместо nop , происходит просто тут же возврат на то место откуда прервалась прога ,и ее выполнение дальше, без каких либо действий и тем более без выполнения "не своего" прерывания ,а вообще-то непонятно что до таких элементарных вещей kison - сами что ли не могли допереть ? Судя по Вашим постам на форумах по С и асму я предполагал что могли бы и сами догадаться .
P.S. Если повышенные требования по надежности то конечно лучше поместить там reti , и плюс запретить это прерывание , ну а если делается типа какая-нибудь игрушка , то можно и nop , и даже запрет на это прерывание ставить не обязательно , если выполнение "не своих " прерываний и такое поведение в целом не ведет к катастрофичности работы устройства .
__________________
Короче асма кода нет !
Последний раз редактировалось pinco; 24.11.2011 в 01:02.
|
|
|
|
24.11.2011, 07:27
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от pinco
|
P.S. Если повышенные требования по надежности то конечно лучше поместить там reti
|
Если повышенные требования по надежности - размещать там можно что угодно.
Ибо программа НИКОГДА не перейдет на этот адрес
|
|
|
|
24.11.2011, 15:47
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от pinco
|
а вообще-то непонятно что до таких элементарных вещей kison - сами что ли не могли допереть ? Судя по Вашим постам на форумах по С и асму я предполагал что могли бы и сами догадаться .
|
Слово - "ирония" знакомо?
Сообщение от pinco
|
P.S. Если повышенные требования по надежности то конечно лучше поместить там reti , и плюс запретить это прерывание , ну а если делается типа какая-нибудь игрушка , то можно и nop , и даже запрет на это прерывание ставить не обязательно , если выполнение "не своих " прерываний и такое поведение в целом не ведет к катастрофичности работы устройства .
|
Зачем тогда советовать выше эти нопы? Игоушки тоже неплохо делать хорошо. RETI тоже неверный метод. Допустим вошли по прерыванию от опустошения регистра передачи UART. По RETI - выход и что "удивительно" тут же вход обратно. Да, одна команда в основной программе будет выполняться все равно между перелетами в прерывание. Пусть даже 2 такта. И 8 на вход-выход. 80% загрузки кристалла непонятно чем. В нормальной программе, как я уже выше писал - все обработчики должны иметься. А дальше решает разработчик. Минимум сброс условия входа в это прерывание. Лучше - зациклить программу и если еще идет разработка - сигнализировать о нештатной ситуации. Выводом в консоль или ножкой подрыгать. Если это уже готовое устройство - зациклить и сброситься от ватчдога. Варианты есть. Но nop и reti - неприемлемы в любом случае. Некоторые их любят, и может поэтому Фобос-грунт никуда не летит например.
Вот если придет testerplus - все объяснит куда лучше чем я.
Последний раз редактировалось kison; 24.11.2011 в 15:51.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:19.
|
|