Определение Загрузки Контроллера

20-07-2013, 11:49 От: admin Посмотрели: 609
Главный цикл контроллера AVR у меня выглядит так:


volatile bool data_ready = false;
...
while (1) {
while (!data_ready);
read_data();
process_data();
}

Переменная data_ready изменяется в обработчике прерывания.

Хочу узнать сколько ещё ресурсов остаётся свободно. Для этого думаю изменить второй цикл таким образом:


unsigned long long counter = 0;
...
while (!data_ready) counter++;

Поскольку приход данных от датчиков переходит с известной частотой, я уверен, что прерывание происходит N раз в секунду. Значит я могу в нём каждую секунду сбрасывать счётчик, а его значение переносить в другую переменную.

Потом остаётся лишь узнать загрузку контроллера по формуле ЗначениеСчётчика * КоличествоТактовЦикла / ЧастотаКонтроллера.

Проблема в том, чтобы определить сколько тактов занимает одна итерация цикла, увеличивающего 64-битную переменную (частота контроллера 16 Мгц, так что вдруг переполнится 32-битный) и проверяющую флаг прихода данных.
Раздел: Песочница или Вопрос-Ответ

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться, либо войти на сайт под своим именем.

Обсудить на форуме


На момент добавления Определение Загрузки Контроллера все ссылки были рабочие.
Все публикации статей, книг и журналов, представлены на этом сайте, исключительно для ознакомления,
авторские права на эти публикации принадлежат авторам статей, книг и издательствам журналов!
Подробно тут | Жалоба
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


Опрос

Ваши предпочтения в TRX


Одинарное преобразование
Двойное преобразование
Прямое преобразование
SDR
Другое
Мне всё равно

Популярные новости
Календарь новостей
«    Май 2024    »
ПнВтСрЧтПтСбВс
 12345
6789101112
13141516171819
20212223242526
2728293031