1) 設定 one-shot & Interrupt, 但好像都進不了 Interrupt.
2) 如果用 Polling mode, 要如何知道 PWM Tx buffer 空了(or 未滿)可以再塞資料 ?
另外, 設定了 one-shot mode, 如果在 1st data 送出後, 再啟動下一筆 ?
以下這樣子行嗎 ?
intdat=0;
void PWMA_IRQHandler(void)
{
PWM_SET_CMR(PWMA, 0, dat++);
if (dat>=12) dat=0;
PWMA->PIIR = 0x01;
PB4 ^= 1;
}
2022/09/06 18:01
PWM 的占空比寄存器是双缓存,随时可以写,只有到下个PWM 周期,写入的新值才有效.
如果希望每个周期都修改占空比,可以设置one-shot模式,然后在中断里面修改CMR。你的代码没有问题