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

 
 
> Облегчение входа в прерывание., IAR AVR 4.20
west329_
сообщение Jul 14 2008, 16:44
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423



Можно какимто способом обрезать лишние операции ? Уж больно жалко времени контроллера.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
defunct
сообщение Jul 20 2008, 22:51
Сообщение #2


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(west329_ @ Jul 14 2008, 19:44) *
Можно какимто способом обрезать лишние операции ? Уж больно жалко времени контроллера.
...
TCNT0 = 0x1A ; // reload counter value
...

Если имеется возможность, то лучше не делать "Reload counter value"
Использовать OCR0 и CTC режим для автоперезагрузки таймера.
Прерывание по OCF0 вместо TOV0. Как мимимум на 2 операции меньше будет, но самое главное - пропадет джиттер интервалов таймера.

Еще. IMHO TIMEms лучше сделать U32 чтобы счетчик не переполнялся каждую минуту.

А вот самое последнее о чем стоит беспокоиться - это длина этого обработчика, т.к. выполняется он аж один раз на 16 тыс. тактов (если проц на макс. частоте).

Цитата(KRS @ Jul 16 2008, 09:29) *
IMHO если прерывание настолько простое проще вообще на асме написать.

Если нет на то серьезных оснований, про асм надо забыть.

В этом конкретном случае серьезных оснований нет.
От того будет этот обработчик выполняться за 10 тактов или за 100 тактов ничего в системе не изменится - ресурсоемкость обработчика в обоих случаях меньше 1%.

А вот если делать Reload counter value вручную как у автора, то будет работать хреново что на C, что на асм, что с коротким обработчиком, что с длинным. Время будет уплывать.
Go to the top of the page
 
+Quote Post



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

 


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


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