Возможно пересекаются таймеры,как решить ситуацию?

bambucho
Offline
Зарегистрирован: 30.08.2014

Доброго времени.

В проекте юзаю:millis(),tone(),Adafruit_NeoPixel.h.Не могу точно сказать какие таймеры используют эти хотелки,но есть предположение,что tone() и Adafruit_NeoPixel.h юзают T2.Если это так,как можно разрешить ситуацию,менять настройки либы Adafruit_NeoPixel.h?

Проблема в честичном попердывании tone(),когда отрабатывает Adafruit_NeoPixel.h.Не могу утверждать,что именно проблема в таймере,но.

MagicianT
Offline
Зарегистрирован: 03.10.2015

Адафрут вроде не использует таймеры, на ассемблере дёргает пин. Функции неопиксела критически относятся к таймингу, вот им и пришлось. 

Миллис() и делай() точно знаю что на 0-м таймере, микрос() то же там. 
Тоне() на 2-м судя по пинам 3 & 11.
Попробуйте разрулить во времени тоне() и обновление нео-пикса.
p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

Со временем там графика не пересекается, а вот тоне тоже что и делай

Поэтому лучше возьми самый дешевый маленький мп3 плеер и будет тебе всё..

ардуино тож не резиновая.