Добрый вечер! Разбираюсь с таймером в BF533. Делаю программу мигания светодиодом по прерыванию таймера 0.
По теории после включения таймера в режиме ШИМ (PWMOUT) в регист TIMERx_COUNTER должен записаться 0 и счетчиком инкрементироваться до значения в регистре TIMERX_PERIOD.
В моем же случае в регистр TIMERx_COUNTER после включения таймера записывается рандомное число и с каждым новым тактом значение в данном регистре увеличивается на рандомное число (причем с каждым разом это число разное), соответсвенно и прерывание срабатывает почти сразу после начала выполнения программы(программа входит в обработчик прерываний, устанавливается нулевой бит в регистре TIMER_STATUS). В регистре TIMER_CONFIG устанавливаю биты:
1)PWM_OUT - включение режима ШИМ
2)OUT_DIS - запрещение сигнала на выходе TMRx
3)PERIOD_CNT - генерируется ШИМ сигнал
4)IRQ_EN - разрешение прерывания
5)EMU_RUN - при эмуляции таймер работает
Может быть кто-нибудь сталкивался с данной проблемой?