Вычисление времени работы платы

В данный форуме Вы можете создавать темы посвящённые расширению функционала программы или сайта. После рассмотрения Ваше предложение будет перенесено в соответствующее место
Ответить
ecoins
Полковник
Сообщения: 1919
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 327
Откуда: Шатура
Имя: Энвер

Вычисление времени работы платы

#1

Сообщение ecoins » 09.05.2017{, 08:50}

Реализую псевдо реальное время.
Понадобилось контролировать время выполнения плат - благодаря этому очень много тормозов в разных устройствах удалось вытащить. 

1) В частности:
       блог сложения строк очень медленный - возможно     из-за использования библиотечной функции String
2) Очень медленный (>10 mc) вывод на LCD (у меня через i2c)
3) тормозит блок  датчика SR04 из-за использования функции pulseIn() - она ждет отклика от датчика, а программа висит
4) и т.п.

Для измерения времени работы платы приходиться прибегать к хитростям - запоминаю время в начале платы и в следующей плате запоминаю время исполнения.
В конце этой же платы запоминать не удается, так как блоки на плате выполняются не в той последовательности как они нарисованы.
 Пример в файле.

Если бы появился блок на выходе которого можно было бы принять время выполнения задачи, а еще бы не плохо период вызова платы - очень облегчило бы разработку систем чувствительных к реальном времени.

Без автора такой блок сделать не представляется возможным.
Спасибо.
Вложения
CAR_mega_BT_RXY.zip
(182.28 КБ) 59 скачиваний

Axelforce
Рядовой
Сообщения: 20
Зарегистрирован: 26.08.2016{, 17:45}
Репутация: 2

Вычисление времени работы платы

#2

Сообщение Axelforce » 06.05.2018{, 12:58}

Когда мне нужно было измерять время выполнения программы (платы) я в начале выполнения устанавливал 0 на дискретном выходе, а в конце выполнения 1 на нем же и измерял длительность импульса осциллографом. Такой вот олд скулл. :ohyes:

Аватара пользователя
Rovki
Полковник
Сообщения: 4542
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 245
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Вычисление времени работы платы

#3

Сообщение Rovki » 06.05.2018{, 13:25}

Длительность 1 импульса генератора сделанного на 1 инверторе с обратной связью равна циклу программы .Ставим счетчик на 1000 и формируем по окончании счета импульс длительностью 0,5сек ,чтобы был виден на 13 пине .Измеряем время счета 1000 импульсов и делим в уме на 1000 -получаем длительность периода = 1имп+1пауза .Для большей точности можно считать 10000 имп. ...
Электронщик до мозга костей и не только

Ответить

Вернуться в «Новые»