реклама на сайте
подробности

 
 
> взаимосвязь между режимом работы ног OC1A/OC1B и нулевого таймера, ATmega32
Vlad Adamenko
сообщение Jul 26 2009, 17:36
Сообщение #1





Группа: Новичок
Сообщений: 14
Регистрация: 19-02-08
Пользователь №: 35 196



Господа, помогите разобраться с багом.
Существует ли взаимосвязь между режимом работы ног OC1A/OC1B и нулевого таймера

Ситуация:
ATmega32 Системные часы 4МГц.
Нулевой таймер:
TCCR0=0x79;
TCNT0=0x00;
OCR0=0x5F;

Т.е. fast PWM, единицу на выход когда compare match. считаем на частоте ядра.

На переполнение висит обработчик прерывания, которых раз в 32, в 64, в 128 и в 256 раза поднимает соответствующие флажки.
Для дела интересен только последний, на остальных пока ничего не висит.
Итак, у нас есть флажок, который по таймеру 0 при помощи прерывания TIMER0_OVF_vect взводится около 60 раз в секунду.
На нём висит перерисовка интерфейса и почти вся логика.

Таймер 1:
TCCR1A=0xA2;
TCCR1B=0x1B;

ICR1H=0xF4;
ICR1L=0x24;

Т.е.:
CS1 = 011 ( clk/64 ) 62,5 kHz
WGM1 = 1110 (режим №14, Fast PWM переполнение в ICR1)
COM1A = 10, COM1B = 10 ( Т.е. на соответствующей ноге после переполнения единица, по достижению OCR1A/B - ноль )

В ICR1 пишем 62500, чтоб таймер1 переполнялся раз в секунду. По переполнению инкрементим системные часы и прочее.

Собственно всё работает, но не стабилно, Пока не таймер 1 не достигает OCR1A/B всё весело обновляется и отрисовуется, по достижению OCR1 система замирает.
Выглядит это глупо, пока светодиодик горит, экран обновляется, гаснет, экран не рисуется. Дело не в подключении экрана, система перестаёт реагировать на изменения напряжений на ADC которые отвабатываются в том же месте где и отрасовка.

Грубо говоря выглядит это так, как будто После Compare Match в первом таймере перестаёт вызываться TIMER0_OVF_vect, а после TIMER1_OVF всё возобновляется.

Веселее всего то, что я этого не замечал, до тех пор, пока не переставил режим ножки OC1B в Normal port operation и увидел что интерфейс не обновляется вообще.

Внимание, вопрос: Какого лешего.


В догонку.
TIMSK=0x05
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 17:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.01259 секунд с 7
ELECTRONIX ©2004-2016