Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

Закрытая тема
Опции темы
Непрочитано 30.12.2010, 22:27   #21
Ar-Gen-Tum
Почётный гражданин KAZUS.RU
 
Регистрация: 19.10.2010
Сообщений: 1,752
Сказал спасибо: 158
Сказали Спасибо 640 раз(а) в 364 сообщении(ях)
Ar-Gen-Tum на пути к лучшему
По умолчанию Re: Две ошибки в tn2313def.inc

Сообщение от parovoZZ Посмотреть сообщение
Хм, а надо ли вообще что-то сохранять в стек, если у меня в главном цикле фактически две команды:
...
Если у Вас только одно прерывание, то SREG можно сохранять в регистре.
Если прерываний более одного и допускается вложенность, то уже нужно сохранять в стеке.
Как пример:
...
test r5
breq label
...
Если после первого оператора произошел вызов прерывания и SREG не сохранен,
то дальнейшее поведение программы будет непредсказуемым.
Ибо может потеряться бит Z .
Реклама:
Ar-Gen-Tum вне форума  
Непрочитано 30.12.2010, 23:25   #22
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,955
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию Re: Две ошибки в tn2313def.inc

Сообщение от parovoZZ Посмотреть сообщение
Хм, а надо ли вообще что-то сохранять в стек, если у меня в главном цикле фактически две команды:
Если так как у вас - то можно ничего в стеке не сохранять вообще, так как тем командам содержимое SREG по барабану.

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

По моему, совершенно не трудно - если в обработчике, скажем, "портится" регистр R16, то сделать так:
Код:
   push R16
   in R16,SREG
   push R16
   ; тут код
   pop R16
   out SREG,R16
   pop R16
   reti
если вообще регистры не трогаются, то так:
Код:
   push R16
   in R16,SREG
   ; тут код
   out SREG,R16
   pop R16
   reti
и быть спокойным.
__________________
[ жизнь приятна и красива, если выпить литр пива ]
nml вне форума  
Непрочитано 01.01.2011, 00:35   #23
parovoZZ
Почётный гражданин KAZUS.RU
 
Регистрация: 15.11.2010
Сообщений: 2,379
Сказал спасибо: 338
Сказали Спасибо 328 раз(а) в 253 сообщении(ях)
parovoZZ на пути к лучшему
По умолчанию Re: Две ошибки в tn2313def.inc

ВСЕМ СПАСИБО!!!

ВСЕХ С НОВЫМ ГОДОМ!!!!
parovoZZ вне форума  
Закрытая тема

Закладки


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Грузоподъемник. Логика. Две схемы, две проблемы ipaSoft TTL и CMOS логика 11 28.10.2010 16:29
Две клавиатуры у одного компьютера mtit Отвлекитесь, эмбеддеры! 22 12.09.2010 23:29
Две микрос... памяти vvkka Микроконтроллеры, АЦП, память и т.д 5 06.08.2010 17:31
Две PC клавиатуры ПАРАЛЕЛЬНО aleksandr-zh Микроконтроллеры, АЦП, память и т.д 6 01.12.2009 00:20
Подскажите как развязать две фазы yokoshima Источники питания и свет 14 17.10.2009 09:17


Часовой пояс GMT +4, время: 23:34.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot