Страница 1 из 1
При смене таймера с 2 на 0, 1 таймер перестает работать кор
Добавлено: Пн дек 11, 2023 12:09:50
mastech
Понадобилось изменить чужой код (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;
С чем это может быть связанно?
Re: При смене таймера с 2 на 0, 1 таймер перестает работать
Добавлено: Пн дек 11, 2023 12:14:35
BOB51
С особенностями работы той программы, которую Вы пытаетесь взломать.

Re: При смене таймера с 2 на 0, 1 таймер перестает работать
Добавлено: Пн дек 11, 2023 12:21:11
>TEHb<
Так таймер0 восьмибитный небось.
Re: При смене таймера с 2 на 0, 1 таймер перестает работать
Добавлено: Пн дек 11, 2023 12:27:59
mastech
[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ми битные, они одинаковые (вроде как).
Re: При смене таймера с 2 на 0, 1 таймер перестает работать
Добавлено: Пн дек 11, 2023 16:48:25
BOB51
Таймеры могут быть привязаны к другим функциям программы (не всегда явно).
Да и обвязка у них отличается по возможностям.
Так что сначала изучайте особенности их (таймеров) применения в конкретной программе, прежде чем что либо "модернизировать".

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

[/uquote]
Вы правы. Предделители у них разные (в обработчике счетчик как раз для интервалов мигания). Спасибо.