нужно менять значение ШИМ на лету, задачка вроде стандартная, и для ней предлагается решение в виде PWM.
тестовый код для инициализации канала 2
Код
PINSEL0 = 0x00008000; // PWM 2
PWMMCR = 0x00000081; // MR2 - Reset, MR0 - interrupt
PWMPCR = 0x00000404; // PWMSEL 2 = 1, PWMENA 2 = 1
PWMMR1 = 0x80;
PWMMR2 = 0x100;
PWMMR0 = 0x50;
PWMLER = 0x07;
PWMTCR = 0x09; // PWM enable, Count start
работает только в симуляторе, в железе никак.
если поставить PWMTCR = 0x01; - все вертиться, но это уже не PWM ...
проверил даташит на предмет хитростей - ничего не нашел.
в книге Тревора Мартина обнаружил подобный пример, но там есть регистр PWMEMR а в LPC2294 его нет
причем значимость данного регистра как раз то чего не хватает.
вырезку из книги прикрепляю (стр. 100)
Если кто сталкивался, поделитесь опытом как бороться