Цитата(GetSmart @ Aug 11 2009, 21:59)

PWMMR0 задаёт период таймера/ШИМа. Его значение обычно должно быть больше чем в остальных PWMMR. Но у Вас почему-то оно меньше чем в остальных каналах. Нулевой канал обычно один раз устанавливается и больше не меняется. Поэтому в последствии младший бит в PWMLER не нужно дёргать. Но если PWMMR0 не трогать, то это не принципиально.
это так, но вроде только для атмеловских SAM, а у LPC сброс может проводить любой из MR конфигурация чего задается
Код
PWMMCR = 0x00000081; // MR2 - Reset, MR0 - interrupt
прерывание по MR0 сдесь лишнее, забыл убрать эксперименты.
Цитата
Если с PWMTCR = 0x01 работает, а с PWMTCR = 0x09 не работает, то странно. Режимы отличаются только наличием теневых регистров и всё.
вот я тоже так думал .... а получается нет, запускаю в отладке с MT-LINK останавливаюсь, снимаю галочку на PWM Enable и все генерит, ставлю и все пропадает, чудеса.
Цитата
И вообще, для нормальной работы ШИМа обычно в PWMMCR записывается 0x03. Плюс, для любых каналов можно ещё прерывания разрешать. Но нет смысла ставить сброс TC или остановку TC на каналы, кроме 0.
вероятно Вы с чем то путаете, 03 - сброс таймера следующим тактовым импульсом, и пока оно не станет 01 счетчик шима будет стоять, и стоит, проверил.
смысл есть, формирование охранной паузы к примеру, да и канал мне не один нужен, это лишь тестовый пример, чтобы не отвлекать от сути проблемы.