Добрый всем!
Прошу помощи так как зашел в тупик.
Есть две ардуино мега 2560 от robotdyn (Robotdyn Mega +WiFi R3 ATmega2560+ESP8266.)
Изначально все работало прекрасно до тех пор пока не поиграл немного с регистрами таймеров (4 и 5)
Регистры были установлены следующие:
TCCR4B = TCCR4B & B11111000 | B00000001;
TCCR5B = TCCR5B & B11111000 | B00000001;
Мои предположения:
По ошибки или невнимательности было установлено значение для функции analogWrite больше 255 после чего перестала работать нормально функция analogWrite даже если удалить регистры из кода и проявлялась она в следующем.
Если исполнить код в противофазе значений:
То шим работает и ослик показывает все нормально.
Если исполнить код такой с одинаковым значением функции analogWrite в данном случаи 128:
То все также нормально работает как и задумано.
Но проблема кроется в следующем и проявляется только когда задействовано от 2 и более выводов с analogwrite
Для примера код с разными значениями функции то на обоих пинах тишина и нет никаких сигналов.
Разницы в работе от расположения в блоке setup или просто без цикла не играют никакой рои было опробовано.
Все эти скетчи пробывались уже без установки регистра таймеров. Замыканий внешних 100% небыло. Поведение подобное на двух платах, Подскажите куда копать потому что я потерялся. Так же пробывал через USBasp перезаписывать загрузчик но эффекта не последовало.
Спасибо за внимание и будущию помощь! рад буду любым наводкам.
Прошу помощи так как зашел в тупик.
Есть две ардуино мега 2560 от robotdyn (Robotdyn Mega +WiFi R3 ATmega2560+ESP8266.)
Изначально все работало прекрасно до тех пор пока не поиграл немного с регистрами таймеров (4 и 5)
Регистры были установлены следующие:
TCCR4B = TCCR4B & B11111000 | B00000001;
TCCR5B = TCCR5B & B11111000 | B00000001;
Мои предположения:
По ошибки или невнимательности было установлено значение для функции analogWrite больше 255 после чего перестала работать нормально функция analogWrite даже если удалить регистры из кода и проявлялась она в следующем.
Если исполнить код в противофазе значений:
C++:
void setup()
{
}
void loop()
{
for(int i = 1; i < 255; i+=10)
{
analogWrite(6, i);
analogWrite(44,255 - i);
delay(100);
}
}
Если исполнить код такой с одинаковым значением функции analogWrite в данном случаи 128:
C++:
void setup()
{
}
void loop()
{
for(int i = 1; i < 255; i+=10)
{
analogWrite(6, 128);
analogWrite(44,128);
delay(100);
}
}
Но проблема кроется в следующем и проявляется только когда задействовано от 2 и более выводов с analogwrite
Для примера код с разными значениями функции то на обоих пинах тишина и нет никаких сигналов.
C++:
void setup()
{
}
void loop()
{
for(int i = 1; i < 255; i+=10)
{
analogWrite(6, 128);
analogWrite(44,200);
delay(100);
}
}
Все эти скетчи пробывались уже без установки регистра таймеров. Замыканий внешних 100% небыло. Поведение подобное на двух платах, Подскажите куда копать потому что я потерялся. Так же пробывал через USBasp перезаписывать загрузчик но эффекта не последовало.
Спасибо за внимание и будущию помощь! рад буду любым наводкам.
Вложения
-
286.5 KB Просмотры: 6
Изменено: