Таймер неверно работает

charmandik
Offline
Зарегистрирован: 14.05.2018

При использовании функции millis (micros не пробовал, но так как она использует тот же таймер, то думаю смысла нет) то при выводе в сериал видно, что значение растёт оооочень быстро, заполнение unsigned long происходит буквально за пару секунд.
Причём это происходит не всегда,иногда он работает всё же верно.

Также было замечено однажды, что при использовании serial.print в попытках вывести значения таймера, он вдруг начинал нормально работать

Так как проект достаточно большой(для меня)- 1,5к строк, то отследить всё не имею возможности и навыков.
Подскажите пожалуйста куда копать, какие манулы курить, какую документацию искать? 
 

charmandik
Offline
Зарегистрирован: 14.05.2018

Забыл упомянуть, что используется Arduino Uno, и были затронуты регистры 
 

TCCR1B = TCCR1B & 0b11111000 | 0x01;
  TCCR2B = TCCR1B & 0b11111000 | 0x01;

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

При странном поведении программы рекомендуется прверить, что ей хватает памяти. Средства для этого, помнится ЕвгенийП, помнится, размещал в одной из тем.

charmandik
Offline
Зарегистрирован: 14.05.2018

Прочитал статью ЕвегенияП, конкретно по ней могу сказать, что не использую динамически выделяемую память вовсе, единственное что, так это много символов чаровских, но я их записываю во флеш память, используя  progmem