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

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

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

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

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

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

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

 
Опции темы
Непрочитано 14.11.2008, 12:46  
festoon
Частый гость
 
Регистрация: 15.08.2005
Сообщений: 38
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
festoon на пути к лучшему
По умолчанию Обработка нескольких прерываний AVR (вопрос)

День добрый. Делаю самодвижущуюся тележку на atmega48 в algorithmbuilder. Используется АЦП и таймер и, соответственно, их прерывания обрабатываются, таймер постоянно, АЦП по необходимости. Всё вроде бы нормально работает, но при включении USART, просто при настройке приёмника, даже отсутствии обработчика прерывания, все действия тележки непонятные, работает как хочет. К примеру, программная пауза (~5 с) может прекратиться в любой момент, также пропускаются некоторые условия в самой программе (‹, ›, -=).
В чём может быть причина такого поведения, почему пропускаются условия?
Реклама:
festoon вне форума  
Непрочитано 14.11.2008, 13:20  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,956
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию

Шаманов и ясновидящих тут нету. Покажите программу. Да, при входе в прерывание сохранять - все что меняется - не забыли?
nml вне форума  
Непрочитано 14.11.2008, 14:12  
festoon
Частый гость
 
Регистрация: 15.08.2005
Сообщений: 38
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
festoon на пути к лучшему
По умолчанию

Вот программка, уверен, она не оптимальна, если есть предложения, буду рад выслушать.

Прикрепленный файл: 273448.rar
festoon вне форума  
Непрочитано 14.11.2008, 14:18  
festoon
Частый гость
 
Регистрация: 15.08.2005
Сообщений: 38
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
festoon на пути к лучшему
По умолчанию

Не совсем понимаю, почему простое прерывание без обработчика, вызывает такую реакцию.
festoon вне форума  
Непрочитано 15.11.2008, 00:06  
ra9mig
Прописка
 
Регистрация: 24.09.2008
Сообщений: 116
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
ra9mig на пути к лучшему
По умолчанию

Пришли .asm, пожалуйста. AB дома нет (качать лень ).
P.S. Там в AB чикрыжик поставить то надо.
__________________
Если мы вам не подходим, вы нам вовсе не нужны!
Услышал и забыл, увидел и запомнил, сделал и понял!
Нейрон - штука тонкая!
Чудес на свете не бывает!
ra9mig вне форума  
Непрочитано 15.11.2008, 01:40  
festoon
Частый гость
 
Регистрация: 15.08.2005
Сообщений: 38
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
festoon на пути к лучшему
По умолчанию

Что поставить надо в билдере?
Тут асм из самого же билдера.
Поделитесь любыми соображениями, может кто расскажет, как надо работать с несколькими прерываниями?

Прикрепленный файл: 3347331.rar
festoon вне форума  
Непрочитано 15.11.2008, 07:58  
ra9mig
Прописка
 
Регистрация: 24.09.2008
Сообщений: 116
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
ra9mig на пути к лучшему
По умолчанию

Цитата:
Что поставить надо в билдере?
Обьясняю:
[Меню/Опции/Опции проекта/Компилятор], [Generate ASM file], [Применить]. Далее [F9] и в каталоге с проектом будет сформирован "нормальный" .asm.
Цитата:
Поделитесь любыми соображениями, может кто расскажет, как надо работать с несколькими прерываниями?
Вы, уважаемый, выложили только основной файл проекта, а у Вас там еще парачка подгружается (откомпилировать не смог)! Но даже из того что есть - все ясно. Вам известна команда "RETI"? Как Вы из прерывания Таймера так "лихо" по метке "f" выходите? А кто будет из стека адресс востанавливать и флажок "i" в "SREG" поднимать...
Или я опять чето напутал?
__________________
Если мы вам не подходим, вы нам вовсе не нужны!
Услышал и забыл, увидел и запомнил, сделал и понял!
Нейрон - штука тонкая!
Чудес на свете не бывает!
ra9mig вне форума  
Непрочитано 15.11.2008, 12:00  
festoon
Частый гость
 
Регистрация: 15.08.2005
Сообщений: 38
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
festoon на пути к лучшему
По умолчанию

Просто использую 5.32, там нет пункта генерации асм. Сейчас сделал 5.00, в прикреплённом файле.
Там в обработчике таймера, если выполняется условие на ножках пора C, в указатель стека загружается адрес последнего байта памяти (перед строчками stop и center), а I устанавливается в следующих за ними подпрограммами.
Только вот не понятно с генерацией асм, он его не полностью генерирует что-ли. Некоторые строчки не описаны...

Прикрепленный файл: 2033246.rar
festoon вне форума  
Непрочитано 15.11.2008, 12:51  
ra9mig
Прописка
 
Регистрация: 24.09.2008
Сообщений: 116
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
ra9mig на пути к лучшему
По умолчанию Re: Обработка нескольких прерываний AVR (вопрос)

Ну вот другое дело, можно спокойно разобраться что к чему (жалко конечно что схемы нету что бы понять что откуда берется и "окуда ноги расту", ну да ладно и так вроде все понятно в общем и целом).
Вопрос вот в чем:
Сообщение от festoon
Всё вроде бы нормально работает, но при включении USART, просто при настройке приёмника, даже отсутствии обработчика прерывания, все действия тележки непонятные, работает как хочет. К примеру, программная пауза (~5 с) может прекратиться в любой момент, также пропускаются некоторые условия в самой программе (‹, ›, -=).
В чём может быть причина такого поведения, почему пропускаются условия?
Я обратил свое внимание на то, как Вы распределили переменные в памяти (раздел SRAM). Там у Вас "time" и "err" находятся по одному и томуже адресу 0х0140 ($140). Это правильно???
По позже еще "покавыряюсь"...
__________________
Если мы вам не подходим, вы нам вовсе не нужны!
Услышал и забыл, увидел и запомнил, сделал и понял!
Нейрон - штука тонкая!
Чудес на свете не бывает!
ra9mig вне форума  
Непрочитано 15.11.2008, 13:31  
festoon
Частый гость
 
Регистрация: 15.08.2005
Сообщений: 38
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
festoon на пути к лучшему
По умолчанию

Вот программка попроще, но смысл почти такой же.
Без включения Usart работает вроде нормально, но как только включаешь, программа сбивается, а в некоторых случаях всё просто останавливается.
А смысл устройства такой: есть двигатель на приводе колёс и есть на повороте руля, на руле стоит резистор, показания которого оцифровываются, чтобы узнать положение руля, спереди 2 датчика. Ну и при столкновении с препятствием, тележка должна его объехать. По отдельности алгоритмы управления через усарт и алг. движения тележки работают, но вместе не хотят, сбивается всё.

Прикрепленный файл: 4194511.rar
festoon вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по Си компиляторам AVR dimonbest Proteus, KiCAD и другие ECAD 51 11.11.2009 22:59
обработчики прерываний микроконтроллеров AVR Gn0me Микроконтроллеры, АЦП, память и т.д 8 06.03.2009 00:40
обработка клавиатуры? maxNTF Микроконтроллеры, АЦП, память и т.д 18 26.10.2007 23:44
нид хелп. Обработка сигнала с датчика freele Автоматика и аппаратура связи 5 14.07.2007 16:56
Обработка прерываний. Tibo Микроконтроллеры, АЦП, память и т.д 12 13.07.2007 17:22


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


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