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

 
 
> колличество тактов, прерывание
sKWO
сообщение Jul 28 2007, 19:00
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 355
Регистрация: 27-03-07
Из: Україна, Чуднів
Пользователь №: 26 530



Здраствуйте все!!
Подскажите пожалуйста сколько тактов в ИАРе для АВР занимает вызов прерывания и возврат из него?
ЕСЛИ ТАКОЙ ВОПРОС УЖЕ БЫЛ ТО ИЗВЕНИТЕ!
и ещё:
_EXTERN_C char __low_level_init() {
//настройка периферии
/* Return 1 to indicate that normal segment */
/* initialization should be performed. If */
/* normal segment initialization should not */
/* be performed, return 0. */
return 1;
}
_END_EXTERN_C

Что это нам даёт и почему так?
Насколько я понял если инициализация прошла успешно то возвращает 1, если нет то 0. А для чего это нужно?
Заранее спасибо.


--------------------
нельзя недооценивать предсказуемость глупости
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
stoker
сообщение Jul 28 2007, 19:37
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 340
Регистрация: 28-11-05
Из: Москва
Пользователь №: 11 469



Цитата(sKWO @ Jul 28 2007, 23:00) *
Здраствуйте все!!
Подскажите пожалуйста сколько тактов в ИАРе для АВР занимает вызов прерывания и возврат из него?


Незнаю с каким чипом вы работаете, но у меня когда то был такой же вопрос.
Взято из даташита на ATMega8:
Цитата
Interrupt Response Time:
The interrupt execution response for all the enabled AVR interrupts is four clock cycles
minimum. After four clock cycles, the Program Vector address for the actual interrupt
handling routine is executed. During this 4-clock cycle period, the Program Counter is
pushed onto the Stack. The Vector is normally a jump to the interrupt routine, and this
jump takes three clock cycles. If an interrupt occurs during execution of a multi-cycle
instruction, this instruction is completed before the interrupt is served. If an interrupt
occurs when the MCU is in sleep mode, the interrupt execution response time is
increased by four clock cycles. This increase comes in addition to the start-up time from
the selected sleep mode.
A return from an interrupt handling routine takes four clock cycles. During these four
clock cycles, the Program Counter (2 bytes) is popped back from the Stack, the Stack
Pointer is incremented by 2, and the I-bit in SREG is set.

Надеюсь поможет.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Jul 30 2007, 05:22
Сообщение #3


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата(stoker @ Jul 28 2007, 22:37) *
Незнаю с каким чипом вы работаете, но у меня когда то был такой же вопрос.
Взято из даташита на ATMega8:

Надеюсь поможет.


Я так понимаю, человека интересует вопрос накладных расходов именно компилятора. Эти расходы зависят от количества используемых регистров, модели проца. Можно конечно вывести общую формулу, но проще посмотреть в .lst-файл и посчитать количество тактов на оверхед. И конечно они суммируются со значением из ДШ.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 10:43
Рейтинг@Mail.ru


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