Отговори на тема  [ 5 мнения ] 
Проблем с прекалено чести прекъсвания 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Нед Окт 15, 2006 8:01 pm
Мнения: 46
Мнение Проблем с прекалено чести прекъсвания
Някой може ли да ме насочи към конкретна информация защо се получава следния проблем и как може да се ограничи или премахне нацяло.

Имам таймер който генерира прекъсване на всеки 50мк. сек. Честотата на контролера е 32Мхц. Проблема е че I2C и USART модулите спират да комуникират. USART не успява да прати нищо а при И2Ц спира на рандом места поради липса на ACK бит от slave-a. Когато увелича интервала на таймера всичко се оправя. Схемата е с PIC18F4580 през Proteus. Във самото прекъсване има няколко иф-а които клатят пинове, тоест нищо сравнително бавно за изпълнение.


Пет Авг 31, 2007 7:59 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Сря Яну 24, 2007 11:00 pm
Мнения: 158
Мнение 
с влизането в прекъсването сейваш ли си всичко което ти трябва и на излизане да си го restore-ваш? с retfie ли излизаш от прекъсването ?


Пет Авг 31, 2007 9:38 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Нед Окт 15, 2006 8:01 pm
Мнения: 46
Мнение 
Пиша на С18. Прекъсването е с нисък приоритет. Компилатора сам си записва регистрите. По късно ще пробвам да го сложа с висок приоритет където се ползват shadow регистрите и според док-а трябва да е по-бързо. Като вляза в прекъсване го забранявам временно и при излизане пак го разрешавам.

От какво ли може да се получава?


Съб Сеп 01, 2007 10:18 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
Намали до минимум каквато и да е обработка при прекъсването от таймера, с приоритет едва ли ще има ефект, с такива времена яде много CPU време само за влизане в прекъсване и излизане от него


Съб Сеп 01, 2007 11:32 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Окт 10, 2004 9:55 am
Мнения: 1718
Мнение Ha
gdh написа:
Пиша на С18. Прекъсването е с нисък приоритет. Компилатора сам си записва регистрите. По късно ще пробвам да го сложа с висок приоритет където се ползват shadow регистрите и според док-а трябва да е по-бързо. Като вляза в прекъсване го забранявам временно и при излизане пак го разрешавам.

От какво ли може да се получава?

Мини на семблер и ще си решиш проблема , ама си сметни и времената на инструкциите че пак може да е същото :)

_________________
Избийте баламите и тарикатите сами ще умрат!
Няма невъзможни работи - има много трудни работи!
----------------------------------------------------------------------------------
"Я в Москве с киркой уран найду, при такой повышенной зарплате" !


Съб Сеп 01, 2007 3:32 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 5 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни