реклама на сайте
подробности

 
 
> Ограничение на объём обработчика прерывания ?
Andy_F
сообщение Apr 11 2007, 11:02
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 109
Регистрация: 27-07-06
Из: С.-Петербург
Пользователь №: 19 148



ATmega32, IAR 4.12A и 4.21A (картина идентична). Модель памяти - small, RSTACK и CSTACK довольно большие и на ситуацию не влияют.

Обработчик прерывания по таймеру получился достаточно длинным. При дописывании очередного фрагмента к обработчику, в основной программе начинаются глюки. Исследования показали, что возникновение глюков не связано с тем, что именно дописываешь, работа нарушается при превышении некоего "объёма".

Как диагностировать происходящее, и как исправить ситуацию ?
Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Andy_F
сообщение Apr 11 2007, 21:51
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 109
Регистрация: 27-07-06
Из: С.-Петербург
Пользователь №: 19 148



Обработчик успевает отработать до возникновения следующего прерывания. Задача как раз формировать сигналы на ножках и считывать ответные реакции. Периодичность возникновения прерывания - 5 мс, обработчик занимает 2 мс, что я и вижу на осциллографе (по этим самым формируемым сигналам). Основной программе остаётся 3 мс, вроде бы никакого криминала. В основной программе информация через UART отсылается на PC (и она действительно отсылается). Т.е., почти всё работает. Единственное, что становится не так - printf, выводящий в основной программе несколько сообщений на LCD, начинает печатать ерунду (как будто начинает брать информацию "не оттуда").
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 11 2007, 22:25
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Andy_F @ Apr 11 2007, 20:51) *
Единственное, что становится не так - printf, выводящий в основной программе несколько сообщений на LCD, начинает печатать ерунду (как будто начинает брать информацию "не оттуда").
Добавьте стека и в RSTACK и в CSTACK


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st August 2025 - 10:00
Рейтинг@Mail.ru


Страница сгенерированна за 0.01432 секунд с 7
ELECTRONIX ©2004-2016