求助 LPC2103 PWM音乐播放 周力功LPC2132中的PWM音乐播放 #include "config.h" #include "music.h" const uint32 HCMM[] = { _LA,_SO,_MI,_LA,_SO,_MI, _LA,_LA,_SO,_LA, _LA,_SO,_MI,_LA,_SO,_MI, _RE,_RE,_DO,_RE, _MI,_MI,_SO,_LA,_DO1,_LA,_SO, _MI,_MI,_SO,_DO, _MI,_MI,_MI,_MI,_MI, _1LA,_1LA,_1SO,_1LA }; const uint32 HCMM_L[] = { _4,_8,_8,_4,_8,_8, _8,_4,_8,_2, _4,_8,_8,_4,_8,_8, _8,_4,_8,_2, _4,_8,_8,_8,_8,_8,_8, _8,_4,_8,_2, _4,_4,_4,_8,_8, _8,_4,_8,_2 }; void Delay(uint8 dly) { uint32 i; for(;dly>0;dly--) for(i=0;i<0x7FFFF;i++); } int main(void) { uint8 i; PINSEL0 = 0x02<<14; PWMPR = 0x00; PWMMCR = 0x02; PWMPCR = 0x0400; PWMMR0 = Fpclk/1000; PWMMR2 = PWMMR0/2; PWMLER = 0x05; PWMTCR = 0x02; PWMTCR = 0x09; while(1) { for(i=0;i<sizeof(HCMM);i++) { PWMMR0 = Fpclk/HCMM; PWMLER = 0x05; Delay(HCMM_L); } } return 0; } 想不明白 while(1)里等待时钟到达到匹配时,产生下沿,从而实现调制 而这里在等待中,加个for循环,这样,不是可能已经循环好几次了,才能产生下沿,实现调制。 我用LPC2103板想实现这个程序,里没有专门的PWM寄存器组,经过改动,FOR中没有了PWMLER锁存,不好使 |