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

 
 
> Как определить загруженность процессора, при выполнении программы?
Pasha 111
сообщение Jul 21 2006, 08:01
Сообщение #1


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

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



Есть программа, вот с такой функцией main:
void main()
{
Init();
while(1) ;
}

Вся остальная программа выполняется по срабатыванию прерываний от ножек процессора и таймера, работающего на частоте 500 Гц. Вопрос: как определить, например в процентах, какая часть процессорного времени уходит на выполнение кода, кроме while(1) в main'е.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Pasha 111
сообщение Jul 21 2006, 09:19
Сообщение #2


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

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



zltigo,
программа работает так: инициализируются прерывания на изменение уровня на ножках процессора, к этим ножкам подключаются энкодеры (от моторов). Т.о. при вращении двигателя возникают П-образные сигналы, и прерывание, отвечающее за обработку этих ножек, увеличивает или уменьшает счётчики (смотрит на ножки, соответствующие каналам А или Б энкодеров).
Т.о. скорость вызовов функции-обработчика прерываний всё время разная, но не меняется скачками, и моментов, когда процессор загружен на 100% в течении очень короткого времени, а в остальное на 0 с чем-то, быть не может smile.gif

Параллельно с этим, работает таймер на частоте 500 Гц. Функция обработки прерываний этого таймера смотрит на переменные, изменяемые энкодерами, и в зависимости от этого выполняет некоторые действия (слудящая, блок принятия решений и т.д.)

На самом деле в функции main() в дальнейшем должен появиться некоторый код smile.gif, так вот мне интересно, сколько ресурсов жрёт следящая, и хватит ли моего at91sam7s на выполнение той проги, которую я в main'е напишу.

P.S. И ещё параллельно с этим функция таймера отправляет данные по uart'у и вызываются прерывания переполнения буфера dma контроллера.

KRS, а это не эквивалентно тому, что я выше написал? Просто так проще smile.gif и таймер лишний юзать не надо.

Сообщение отредактировал Pasha 111 - Jul 21 2006, 09:21
Go to the top of the page
 
+Quote Post
klen
сообщение Jul 21 2006, 14:54
Сообщение #3


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Предлагаю такую вариацию решения (если есть 1 свободный таймер)
имеем один 32 бит таймера
конфигурим его так чтоб он инкрементировался по каждому такту.
при входе в прерывания его включаем при выходе выключаем. На это потребуется всего 2 такта, что можно либо учесть или забить если код прерываний большой (првда че это за прерывания тогда smile.gif )
Через 2^32/Fтакт секунд смотрим отношение числа в счетном регистре таймера к числу 0xFFFFFFFF, это и будет процент загрузки.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Pasha 111   Как определить загруженность процессора   Jul 21 2006, 08:01
- - iit   Цитата(Pasha 111 @ Jul 21 2006, 11:01) Ес...   Jul 21 2006, 08:12
- - beer_warrior   Если длительность прерывания таймера вполне поддае...   Jul 21 2006, 08:18
- - KRS   Можно осцилографом, на глаз? если есть свобожная н...   Jul 21 2006, 08:28
- - Alechek   Цитата(Pasha 111 @ Jul 21 2006, 14:01) Во...   Jul 21 2006, 08:29
- - Pasha 111   iit, от симулятора не будет толка, потому что выпо...   Jul 21 2006, 08:30
|- - Alechek   Цитата(Pasha 111 @ Jul 21 2006, 14:30) а ...   Jul 21 2006, 08:33
|- - zltigo   Цитата(Pasha 111 @ Jul 21 2006, 11:30) а ...   Jul 21 2006, 08:57
- - Pasha 111   KRS, Alechek, а если без внешних приборов? Чтобы б...   Jul 21 2006, 08:33
|- - Alechek   Цитата(Pasha 111 @ Jul 21 2006, 14:33) KR...   Jul 21 2006, 08:35
|- - KRS   Цитата(Pasha 111 @ Jul 21 2006, 12:33) KR...   Jul 21 2006, 09:12
- - Pasha 111   Alechek, не думаю, что АЦП в этом случае правильно...   Jul 21 2006, 08:43
|- - zltigo   Цитата(Pasha 111 @ Jul 21 2006, 12:19) и ...   Jul 21 2006, 17:01
- - Abo   Ой, не советовал бы я энкодеры на прерывания вешат...   Jul 21 2006, 16:25


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

 


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


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