Понадобилось изменить чужой код (Atmega16), заменить второй таймер на нулевой, чтоб на втором использовать внешнее прерывание (на нулевом ножка занята). Обнаружилась проблема если перейти на нулевой таймер со второго при этом второй таймер выключен полностью для проверки корректной работы нулевого, начинает некорректно работать первый таймер. На первом таймере «висят» светодиоды, они переодически мигают в зависимости от режима работы устройства, при нулевом таймере когда один из диодов включен, он непросто светится, а мерцает с частотой примерно 70герц.
Настройка таймеров 2 и 1, при замене на 0 второй полностью выключается обработчик так же меняется на 0:
1таймер:
SFIOR=SFIOR|0x01;
TCCR1A=0x03;
TCCR1B=0x19;
TCNT1H=0x00;
TCNT1L=0x00;
2таймер, 0 настраивается как 2:
TIMSK=0x80;
TCCR2=0x0B;
OCR2=120;
TCNT2=0xFF;
С чем это может быть связанно?
При смене таймера с 2 на 0, 1 таймер перестает работать кор
При смене таймера с 2 на 0, 1 таймер перестает работать кор
Последний раз редактировалось mastech Пн дек 11, 2023 12:29:27, всего редактировалось 1 раз.
Re: При смене таймера с 2 на 0, 1 таймер перестает работать
С особенностями работы той программы, которую Вы пытаетесь взломать.

- >TEHb<
- Друг Кота
- Сообщения: 5723
- Зарегистрирован: Ср ноя 11, 2009 17:19:30
- Откуда: Воронеж
- Контактная информация:
Re: При смене таймера с 2 на 0, 1 таймер перестает работать
Так таймер0 восьмибитный небось.
"Привет!" - соврал он.
Re: При смене таймера с 2 на 0, 1 таймер перестает работать
[uquote="BOB51",url="/forum/viewtopic.php?p=4516103#p4516103"]С особенностями работы той программы, которую Вы пытаетесь взломать.
[/uquote]
Взломать это громко сказано)
Непонятно как второй и нулевой таймеры связаны с первым, в исходнике первый и второй работают сами по себе и никак не связаны.
Добавлено after 4 minutes 36 seconds:
[uquote=">TEHb<",url="/forum/viewtopic.php?p=4516111#p4516111"]Так таймер0 восьмибитный небось.[/uquote]
Забыл уточнить микроконтроллер Atmega16. Нулевой и второй таймеры там 8ми битные, они одинаковые (вроде как).
Взломать это громко сказано)
Непонятно как второй и нулевой таймеры связаны с первым, в исходнике первый и второй работают сами по себе и никак не связаны.
Добавлено after 4 minutes 36 seconds:
[uquote=">TEHb<",url="/forum/viewtopic.php?p=4516111#p4516111"]Так таймер0 восьмибитный небось.[/uquote]
Забыл уточнить микроконтроллер Atmega16. Нулевой и второй таймеры там 8ми битные, они одинаковые (вроде как).
Re: При смене таймера с 2 на 0, 1 таймер перестает работать
Таймеры могут быть привязаны к другим функциям программы (не всегда явно).
Да и обвязка у них отличается по возможностям.
Так что сначала изучайте особенности их (таймеров) применения в конкретной программе, прежде чем что либо "модернизировать".

Да и обвязка у них отличается по возможностям.
Так что сначала изучайте особенности их (таймеров) применения в конкретной программе, прежде чем что либо "модернизировать".
Re: При смене таймера с 2 на 0, 1 таймер перестает работать
[uquote="BOB51",url="/forum/viewtopic.php?p=4516284#p4516284"]Таймеры могут быть привязаны к другим функциям программы (не всегда явно).
Да и обвязка у них отличается по возможностям.
Так что сначала изучайте особенности их (таймеров) применения в конкретной программе, прежде чем что либо "модернизировать".
[/uquote]
Вы правы. Предделители у них разные (в обработчике счетчик как раз для интервалов мигания). Спасибо.
Да и обвязка у них отличается по возможностям.
Так что сначала изучайте особенности их (таймеров) применения в конкретной программе, прежде чем что либо "модернизировать".
Вы правы. Предделители у них разные (в обработчике счетчик как раз для интервалов мигания). Спасибо.