Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
27.11.2011, 15:52
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от roma9112
|
Спасаем Kison-а, он хороший!!!
|
Судя по клуджам он сам кого хошь спасет...
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
27.11.2011, 19:15
|
|
Гражданин KAZUS.RU
Регистрация: 04.04.2007
Сообщений: 941
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от st_1
|
Да ладно... не надо ля-ля...
Уровень kison достаточно высок...
|
А что ля-ля -то , согласен что для многих его уровень конечно же высок , для начинающих так и вообще ну "почти бог" . Но даже будь он "самим Теслой" в прогах ,хотя про такой его уровень уже сильно сомневаюсь - если где лоханулся или чего не знал - то имей мужество это признать - вот о чем речь .И количество написанных прог или стаж работ и прочее ,прочее тут ну совершенно ни при чем .
__________________
Короче асма кода нет !
Последний раз редактировалось pinco; 27.11.2011 в 19:35.
|
|
|
|
27.11.2011, 20:07
|
|
Гражданин KAZUS.RU
Регистрация: 04.04.2007
Сообщений: 941
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от alvadep
|
Я бы нопами тоже не заполнял таблицу векторов и вот почему.
Если есть прерывание в конце таблицы векторов, которое может быть запрещено в ходе выполнения программы, то мы получаем не санкционированный переход на обработку этого прерывания по любому чиху (нопы приведут к этому) и в самый не подходящий момент. В лучшем случае это потеря времени, в худшем срань в регистрах. Все зависит от самого обработчика прерывания.
Если нопы приводят к начальной инициализации, это тоже не есть гуд...
|
Тоже верно , но это все же лучше когда по случайному сбою происходит начальная инициализация ,потому что кристалл заново набирает данные и теперь уже дальше правильно работая с ними - даст и результаты правильные .Если бы этого не было то при дальнейшей работе кристалл выдавал бы искаженные или неверно обработанные результаты после сбоя .А в тех прогах где потери уже наработанных данных не допускается применяется либо их сохранение перед такой инициализацией контроллера заново и последующий потом разбор ранее сохраненных данных ,и если возможно то сортировка , отбраковка приемлемых или заведомо верных данных ,и работа далее , либо только частичная инициализация блоков контроллера , регистров и т д ,и продолжение работы далее без глобального ресета .Это в общем ,ну и естественно плюс еще как именно напишете свой обработчик таких ситуаций .
__________________
Короче асма кода нет !
Последний раз редактировалось pinco; 27.11.2011 в 20:14.
|
|
|
|
27.11.2011, 21:54
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от pinco
|
А что ля-ля -то
|
Просто предлагаю остановиться и не развивать срач... и только...
|
|
|
|
27.11.2011, 22:01
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от st_1
|
Просто предлагаю остановиться и не развивать срач... и только...
|
+100500 Давно пора...
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
28.11.2011, 07:43
|
|
Прописка
Регистрация: 18.10.2010
Адрес: Planet Earth )
Сообщений: 120
Сказал спасибо: 14
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от st_1
|
Просто предлагаю остановиться и не развивать срач...
|
Мне тяжело под итожить, как начинающему, что лучше в векторах прописывать nop или reti.
Понятно одно, Команда NOP
Команда "нет операции" выполняет холостой ход и не влияет на регистры и флаги, кроме как на счетчик команд (РС).
Команда RETI
Команда "возврат из прерывания" выгружает старший и младший байты счетчика команд из стека и устанавливает "логику прерываний", разрешая прием других прерываний с уровнем приоритета, равным уровню приоритета только что обработанного прерывания. Указатель стека уменьшается на 2. Слово состояния программы (PSW) не восстанавливается автоматически. Выполнение основной программы продолжается с команды, следующей за командой, на которой произошел переход к обнаружению запроса на прерывание. Если при выполнении команды RETI обнаружено прерывание с таким же или меньшим уровнем приоритета, то одна команда основной программы успевает выполниться до обработки такого прерывания.
И самое главное для себя, из ранее прочитанных постов, я выбираю способ вот такой:
cseg ; Начало кодового сегмента
.org 0x0000
rjmp RESET ; Обработка сброса
.org 0x0001
rjmp EXT_INT0 ; внешнее прерывание IRQ0
reti
.org 0x0002 ; rjmp EXT_INT1 ; внешнее прерывание IRQ1
reti
и т. д. указываю как бы адрес, или другими словами, устанавливаю счетчик положения равным заданной величине, который передается как параметр. И в заключении ставлю reti.
Но это меня сейчас не так сильно волнует, хотелось бы научиться грамотно составлять алгоритмы и по ним писать программы и наоборот, увидя программу, понимать алгоритм. Я до сих пор что то делаю не правильно, но это в следующем посте, надо подготовится с вопросом, что бы он был корректным.
__________________
Мозги кипят, ядрить твою валентность!!! Пойду закладывать остальные ингредиенты...
|
|
|
|
28.11.2011, 12:27
|
|
Гражданин KAZUS.RU
Регистрация: 13.06.2005
Адрес: РК г.Павлодар
Сообщений: 866
Сказал спасибо: 99
Сказали Спасибо 216 раз(а) в 140 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от DAVE_ELEKTRIK
|
И самое главное для себя, из ранее прочитанных постов, я выбираю способ вот такой:
cseg ; Начало кодового сегмента
.org 0x0000
rjmp RESET ; Обработка сброса
.org 0x0001
rjmp EXT_INT0 ; внешнее прерывание IRQ0
reti
.org 0x0002 ; rjmp EXT_INT1 ; внешнее прерывание IRQ1
reti
|
Надо что то одно либо rjmp, либо reti.
__________________
Не ошибается лишь тот, кто ни чего не делает!
|
|
|
|
28.11.2011, 12:37
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от DAVE_ELEKTRIK
|
Мне тяжело под итожить, как начинающему, что лучше в векторах прописывать nop или reti.
|
Ни то, ни другое. Учитесь сразу делать правильно, иначе станете быдлокодером и будете производить быдлокод. Читайте обоснования выше - о вечных прерываниях и загрузке ядра не пойми чем или выполнении чужого обработчика. В котором может что угодно содержаться - к примеру самоуничтожение прибора.
И специально для Pinco - признаю что про использование nop на векторе не знал. Мне такой подход и в кошмаре привидеться не мог. Зарекаться от его использования не буду - говорят с возрастом подкрадывается такая штука как маразм и тогда этот подход может вдруг показаться правильным Но надеюсь до такого не дойдет
ЗЫ. А что такое - клуджи?
|
|
|
|
28.11.2011, 12:43
|
|
Почётный гражданин KAZUS.RU
Регистрация: 28.02.2010
Сообщений: 2,297
Сказал спасибо: 53
Сказали Спасибо 461 раз(а) в 392 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
(Не осилил 6 страниц , много ерунды) 8515 создавалась для замены 51 процессора .(Там и шина , и цоколёвка - ПРОСТО для Плавного перехода на Новый процессор- AVR-ки имеется ввиду(Программаторы, компиляторы..и т.д.))
|
|
|
|
28.11.2011, 13:39
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: Помогите начинающему по ATmega8515
Сообщение от kison
|
А что такое - клуджи?
|
Витиеватые "игры разума", приводящие, как ни странно, к необходимому результату...
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:19.
|
|