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

 
 
> Стек для прерываний, и недостаток таймеров
amaora
сообщение Jul 26 2009, 20:51
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 421
Регистрация: 2-01-08
Пользователь №: 33 778



Кто нибудь делал отдельный стек для прерываний? есть ли смысл? код думаю писать как то так,

Код
handler:
sts stack-0, r16
sts stack-1, r17
in    r16, __SP_L_
in    r17, __SP_H_
sts stack-2, r16
sts stack-3, r17
ldi r16, lo8(stack-4)
ldi r17, hi8(stack-4)
out    __SP_L__, r16
out    __SP_H__, r17
//здесь код обработчика прерывания
// востановление писать лень ) тут все понятно
reti_


Не слишком ли будет тяжеловесно? хотя это не главный вопрос, основная сложность с компилятором (GCC) как его заставить генерировать обработчтки в таком виде? можно __attribute__ ((__naked__)) но тогда надо как то следить за тем какие регистры были использованы, не сохранять же все. Похоже надо начинать смотреть исходники GCC.

Правка: push/pop и st/ld длятся все по 2 такта, можно просто заменить все push на sts с фиксированными адресами ... потерь в скорости не будет.

Сообщение отредактировал amaora - Jul 26 2009, 21:17
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- amaora   Стек для прерываний, и недостаток таймеров   Jul 26 2009, 20:51
- - aaarrr   Цитата(amaora @ Jul 27 2009, 00:51) есть ...   Jul 26 2009, 20:55
- - amaora   И вопрос второй, в atmega16 три таймера, а что есл...   Jul 26 2009, 20:58
|- - aaarrr   Цитата(amaora @ Jul 27 2009, 00:58) А над...   Jul 26 2009, 21:19
|- - defunct   Цитата(amaora @ Jul 26 2009, 23:58) А над...   Jul 26 2009, 22:01
||- - Zlumd   Цитата(defunct @ Jul 27 2009, 05:01) Возь...   Jul 27 2009, 09:35
||- - defunct   Цитата(Zlumd @ Jul 27 2009, 12:35) А разв...   Jul 27 2009, 11:01
||- - prottoss   Цитата(defunct @ Jul 27 2009, 19:01) Не п...   Jul 27 2009, 14:39
|||- - defunct   Цитата(prottoss @ Jul 27 2009, 17:39) Кла...   Jul 27 2009, 15:00
||- - Zlumd   Цитата(defunct @ Jul 27 2009, 18:01) Да. ...   Jul 28 2009, 01:05
||- - defunct   Цитата(Zlumd @ Jul 28 2009, 04:05) Так эт...   Jul 28 2009, 01:33
||- - _Pasha   Цитата(defunct @ Jul 28 2009, 04:33) Дайт...   Jul 28 2009, 01:55
||- - Zlumd   Цитата(defunct @ Jul 28 2009, 08:33) Как ...   Jul 28 2009, 06:01
||- - defunct   Цитата(Zlumd @ Jul 28 2009, 09:01) Так оч...   Jul 28 2009, 23:02
|- - prottoss   Цитата(amaora @ Jul 27 2009, 04:58) И воп...   Jul 27 2009, 07:49
|- - SasaVitebsk   Цитата(prottoss @ Jul 27 2009, 10:49) Я б...   Jul 27 2009, 10:04
- - _Pasha   Цитата(amaora @ Jul 26 2009, 23:51) Кто н...   Jul 27 2009, 05:47
- - amaora   Хорошо, с клавиатурой ясно, надо как то усложнить ...   Jul 27 2009, 15:56
- - _Pasha   Цитата(amaora @ Jul 27 2009, 18:56) А вот...   Jul 27 2009, 16:54
- - amaora   Цитата(_Pasha @ Jul 27 2009, 20:54) Имхо,...   Jul 28 2009, 07:43
- - _Pasha   Цитата(amaora @ Jul 28 2009, 10:43) С эти...   Jul 29 2009, 10:32


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

 


RSS Текстовая версия Сейчас: 28th June 2025 - 06:44
Рейтинг@Mail.ru


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