Цитата
Както странно, у Вас PWM_period_val и период таймера (задающий частоту ШИМ) и амплитуда синуса....
...
зачем "-1" ? Искажений добавляете? Впрочем возможно что в вашем случае они не появятся (при перермножении 375 на табличные значения наверняка не будет произведения где младшие 10 бит нулевые).
Может хотели ((PWM_period_val-1)*usin[i]) ?
Да и вообще весь этот код упростить можно.
Alex03, проблема абсолютно в другом.... (я согласен с вами, что "-1" это лишнее, но это всё-равно. таблица полу-синуса хоть с 10 может начинаться - она на 0х3FF отнормирована, так что там всё-равно.). проблема в том, что каким-то непонятным образом в tmrmr0 !однократно! попадает!? значение больше или равное периоду pwm, что вызывает установку соответсвтующей ноги в 0 на период шима. как такое происходит - ума не приложу.
пока все догадки и эксперименты были из области фантастики, по-этому я решил обратиться к многоуважаемому сообществу.
Цитата
И почему у Вас в таблице полуволны синуса первый элемент 3 а не 0? А если заменить на 0 то как раз та самая "-1" то и вылезет.

Вот эта конструкция
Код
i = (i != 799) ? ++i : 0;
тоже достойна похвалы...

это стандартная конструкция языка ANSI C, думаю это вопрос не принципиальный )
Цитата(GetSmart @ Jul 7 2008, 19:41)

Могу сказать, что делал почти точно так же на LPC2132 и всё работало чудесно. Только перезагрузку MACH регистра делал по прерыванию 0-ого канала, который задаёт период PWM, то бишь обнуляет счётчик. В возникающем при этом прерывании обновлял PWMMR1 и стробировал PWMLER, а затем сразу же выходил из прерывания.
Кстати, таймер отличается от PWM тем, что у него нет защёлок на MACH регистрах (регистра PWMLER). Может в этом косяк.
я использую именно описанный в доке режим PWM, канал 3 - задаёт период PWM, а каналы 0 1 и 2 в рабочем проекте - разные PWM с одним периодом (канал 3)
собственно в данном случае проблему надо глазами видеть. Понимаете, я бы понял, если бы проблема проявлялась на "пике" какого-то канала, тогда можно было бы говорить о переполнении и всякой такой простой ерунде, однако "задир" проявляется - фото (качество не очень, синус - идеальный но имеет "задир")
Буду благодарен за умную мысль по теме.
ФОТО "ЗАДИРА"