首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

求助 LPC2103  PWM音乐播放

求助 LPC2103  PWM音乐播放

求助 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锁存,不好使

返回列表