Добрый день, Всем!
провел некоторые эксперименты по оценке быстродействия.
—————————————
Исходные данные:
модуль этот http://nodemcu.com/index_cn.html
NodeMCU_DEVKIT_V0.9
———————————————————————————————
Исследуем работу с DS18B20
——————————
1) сначала сделал скрипт на LUA из примера в документации
так как в существующей библиотеке работы c 1-wire не используются прерывания, то процессор фактически занят 800 ms на одно измерение при 12 битовой точности.
Таким образом, если нам необходимо получать одно измерение в секунду то максимальное быстродействие составит 1 измерение в секунду при 80% загрузки процессора.
————————
2) подключил 2 датчика для проверки идентичности преобразования. в результате систематическая ошибка в пределах 1-2 бит т е 0.0625-0.125 гр С
——————————
3) после этого написал драйвер с использованием прерываний.
В результате время загрузки процессора составило 40 ms вместо 800 ms по примеру из пакета. Таким образом загрузка процессора уменьшилась в 20 раз.
При скорости преобразования 1 измерение в секунду (датчик быстрее с такой точностью не работает) загрузка процессора составляет 4%.
————————————————
Загрузку процессора можно еще уменьшить примерно в 2 раза для двух датчиков или в 4 — для одного. Это можно обеспечить , если читать из DS18B20 лишь два байта температуры и не проверять контрольную сумму.
В этом случае чтение показаний двух датчиков составляет 22 ms и 12 ms, если датчик один.
При этом запуск измерения в двух датчиках  выполняется одновременно.
———————————————-
Таким образом, получили возможность одновременно измерять температуру в нескольких точках объекта со скоростью 1 измерение в секунду.
Загрузка процессора составляет примерно 1%.
Драйвер на LUA.
—————————
Кроме того, получились следующие времена:
tmr.now();  —23 мкс
string.char(ow.read(pin));   —1836 мкс
ow.crc8(string.sub(data,1,8))  —115 мкс
ow.reset(pin);  ow.select(pin, adT[i]);  ow.write(pin,rom,1);   — 6800 мкс
————————————
This entry was posted on Пятница, 6 марта, 2015 at 17:57 and is filed under LUA, Микропроцессоры, Умные вещи. You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.

Comments are closed at this time.