配置3个IO口为PWM输出,纯粹把TimerB当作定时器用,定时时间到后在中断中改变PWM高低电平。加入P2.0和P2.1为第一和第二路PWM输出,第一路PWM高电平到第二路PWM高电平相差1us,那就先P2OUT |= BIT0;同时用TimerB定时1us,进中断后P2OUT |= BIT1。如果第一路2us后变低电平,那么同时在中断中开始2us定时,再次进入中断后P2OUT &= ~BIT0,依次类推,当然三路甚至更多路都不是问题。这个方法精度以及CPU功耗可能会有点问题,具体还要看你这个PWM的频率和分辨率要求。
|
|