к561ЛА7 писал(а):
Можно ли аппаратно запустить таймеры ТО и Т2 с частотой предделителя 1024
по достижении таймером Т1 чисел 208 и 416, сам таймер Т1 считает от нуля до 625
Можно, но програмно.
Вначале поставить прерывание по совпадению Т1 на 208 (возможно на 207 чтоб с учетом времени входа в прерывание получилось 208 - это уже надо в симуляторе точно замерить)
В процедуре этого прерывания:
проверьте что таймер не превысил например 220 (значит это прерывание именно от 208)
сделайте то что нужно на 208.
настройте следующее совпадение на 416.
если превысил 220 то это прерывание по 416.
сделайте то что нужно на 416
настройте след совпадение снова по 208
вот так примерно.
Добавлено спустя 3 минуты 38 секунд:Код:
if (TCNT1<220){ // произошел досчет только до 208.
TCCR0 = 0x00; //stop timer
TCNT0 = 0x01; //записать в регистр таймера число 1
TCCR0 = 0b00000101; //start timer - clock/-5 делим частоту на 1024 - врубаем счетчик
настроить след "прервание по совпадению" на счет 416 таймера 1
}
else { // произошел досчет только до 416
TCCR2 = 0x00; //stop timer
TCNT2 = 0x01; //записать в регистр таймера число 1
TCCR2 = 0b00000101; //start timer - clock/-5 делим частоту на 1024 - // врубаем счетчик
настроить след "прервание по совпадению" на счет 208 таймера 1
}
Надо убедится что
нули TCCR2 = 0b
00000101;
не повлияют на другие настройки таймера.
Если влияют то надо не трогать эти биты 7...3
TCCR2 &= 0b11111000; // обнулить биты 2 1 0
TCCR2 |= 0b00000101; // установить биты 2 и 0