В общем, посмотрел, это похоже на опцию защиты от зависания в общих настройках. При отключении этой опции из кода пропадают эти строки настройки таймера:
Код: Выделить всё
TCCR2A = 0x00;
TCCR2B = 0x07;
TIMSK2=0x01;
TCNT2=100;
Библиотеки для разных контроллеров
Код: Выделить всё
TCCR2A = 0x00;
TCCR2B = 0x07;
TIMSK2=0x01;
TCNT2=100;
Отлично, что разобрались.starshoy81 писал(а): ↑02.11.2021{, 18:29}В тестовом проекте защиты от зависания нет, поэтому там шим на 3 пине работает.
Через несколько дней обязательно посмотрю и совместными усилиями непременно сделаем.Telman писал(а): ↑02.11.2021{, 22:56}Всем доброго времени суток. Уважаемые разработчики данной темы, помогите) Анатолий (автор программы каскада) сказал, что бы можете помочь меня в моем проеекте. Есть весы (тензодатчик на hx711) подключенные к мега, дисплей 2004, идет процесс взвешивания продукта и вес передается по модбас рту-тсп(есп8266, вемод д1) в HMI kascada. и очень часто модбас тормозит из за дисплея, hx711. можете помочь делать программу пошустрее?
Существующие хорошо работают.
Изменение частоты ШИМ на Arduino с архитектурой AVR штатными средствами Arduino не предусмотрены.
пины UNO A0-A5 соответствуют номерам 14-19;
Для ускорения работы с счетчика параметры считываются со входом при первом запуске, далее по сбросу.
Желательно что бы на входах можно было менять значения не зависимо от EN=1 или EN=0 так как нужно вести подсчет чего либо как на увеличение так и на уменьшение,и в определенный момент времени считать с увеличенным шагом ну и тому подобное, или отдельный вход от тригера чтобы при изменении значений тригер передергивал счетчик, если конечно это все возможно! Надеюсь у меня получилось сформулировать свою мысль.
Я так понимаю, что и датчики температуры конфигурируются при первом запуске? То есть какой пользовательский пин был установлен на момент первого рабочего цикла, тот потом и используется?
Не совсем так.
Это достигается уже имеющими средствами. При этом полезно установить разное время опроса. Кое-что мы в будущем добавить, чтобы и эти коллизии обходились в библиотеках.Alias писал(а): ↑23.12.2021{, 12:38}Кстати, а не могли бы Вы для проектов со множеством датчиков сделать блок, который сам будет сканировать по очереди с заданным интервалом датчики на заданных пинах и передавать данные в соответствующие переменные? Тогда в проекте будет всего один блок датчика температуры в режиме мультиплексора, что реально сэкономит много ресурсов.
Интересная работа.
Вроде бы по встроенной памяти больше 1534 байт, по ОЗУ 30 байт. Предположу, что если Вы сделаете проект на 20 сенсоров, то соотношение изменится в пользу наших библиотек. А если задействуете i2c, Serial, то выигрыш будет совсем очевидный.Alias писал(а): ↑23.12.2021{, 14:06}Потом сравнил объемы тестовой программы с одним блоком датчика: 8226/711 байт Ваш (плата 4) против 6118/681 от RedSky (плата 5). Разумеется, что это не показательно, поэтому тут же сделал по 10 штук. Получилось уже 9422/1242 (плата 6) против 7888/942 (плата 7). Несопоставимо больший рост занимаемой памяти при прочих равных.