欢迎来到天天文库
浏览记录
ID:41781584
大小:382.24 KB
页数:10页
时间:2019-09-02
《华北电力大学科技学院ARM课内实验三》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、科技学院课程设计报告(2015—2016年度第二学期)名称:ARM试验PWM题目:—院系:科技学院班级:13k2学号:3j学生姓名:指导教师:张老师设计周数:成绩:日期:2016年5月10日实验三:脉冲宽度调制器PWM(1)捕获功能—:实验现象1.本次实验是使用LPC178/177x系列Cortex-M3中的PWM输出功能的捕获模块来输出3路双边沿PWMo其中第一路是周期为100us,占空比为87.5%的方波,第二路是周期为100us,占空比为50%的方波,第三路是周期为100us,占空比为25%的方波。2.实验现象图片展不:测试时用示波器捕获P3.25(PWM-2,通道2输
2、出)、3.27(PWM-1输,通道4输出)、3.29(PWM-1,通道6输出)引脚上的波形如下图所示:3.33333kHz120mVirig'dMEA3、ineLEDON()(1ul«31)LPC_GP103->DIR4、LPC_GP103->SET5、LPC_GPI03->CLR6、//定时器捕获中断标志voIatiIeuint32_tGuiCapFIag=0;voidmyDelay(uint32_tuITime){uint32ti;while(uITime一一){for(i=0;i<19192;&+);}}voidpwmDblInit(void)//初始化双边沿PWM输出{uint32_tiTmp;LPC10C0N->P325&二~0x07;//11111000相当于清零最后三位LPC_IOCON->P3_25LPC_IOCON7、->P3_27LPC_IOCON->P3_27LPC_IOCON->P3_29LPCI0C0N->P3298、二2;//O010-01OP158,P3.25作PWM1[2]输出&二~0x07;9、=2;//与上同,P3.27作PWM1[4]输出&二~0x07;I二2;//与上同,P3.29作PWM1[6]输出iTmp二PeripheralClock/10000;//FPCLK_FREQ分频,PWM计数频率LPC_PWM1->PR—0x00;//不分频LPC_PWM1->MCR=0x02;//PWMMRO与PWMTC匹配时复位PWMTCLPC_PWM1->PCR=(1«2)10、//P11、WM2双边沿控制(1«4)I//PWM4双边沿控制(1«6)I//PWM6双边沿控制(1«10)12、//使能PWM2输出(1«12)13、〃使能PWM4输出(1«14);〃使能PWM6输出LPC_PWM1->MR0二iTmp;//T=1710000=0.1ms=100us,PWM速率控制/计数初值,设置双边沿脉冲的脉宽和位置LPC_PWM1->MR1=LPC_PWM1->MR2二置LPC_PWM1->MR3二LPC_PWM1-〉MR4二PWM4的复位位置LPC_PWM1->MR5=LPC_PWM1->MR6=PWM6的复位位置0;//设置初始值为低电平,然后立即变上升沿,PWM2的14、置位位置*(iTmp(iTmp(iTmp(iTmp(iTmp/8)/8)/8)/8)/8)7;//占空比=7/8*1OOus的时间后下降沿,PWM2的复位位2;//PWM4的置位位置6;//MR3与MR4两路占空比二4/8*100us的时间后下降沿,3;//PWM6的置位位置5;//MR3与MR4两路占空比=2/8*100us的时间后下降沿,LPC_PWM1->LER=LPC_PWM1->TCR=LPC_PWM1->TCR==Ox7F;//01111111,锁存所有PWM匹配值=0x02;//复位PWMTC=0x09;//使能PWM}intmain(void)Systemln15、it();pwmDbl1nit();//系统初始化,切勿删除//初始化1/0口,设置P3.25//P3.27、P3.29为双边沿输出while(1);H:通过修改某些语句从而使得波形的周期和占空比发生变化通过改变voidpwmDblInit(void)子函数中的MR1/MR2(或者MR3/MR4.MR5/MR6)的设置,可以使得波形的周期和占空比发生变化,这里不再举例。(2)PWM中断—:实验现象本次实验是使用LPC178/177x系列Cortex-M3中的PWM输出功能的定时中断功能,通过PWM的定时
3、ineLEDON()(1ul«31)LPC_GP103->DIR
4、LPC_GP103->SET
5、LPC_GPI03->CLR
6、//定时器捕获中断标志voIatiIeuint32_tGuiCapFIag=0;voidmyDelay(uint32_tuITime){uint32ti;while(uITime一一){for(i=0;i<19192;&+);}}voidpwmDblInit(void)//初始化双边沿PWM输出{uint32_tiTmp;LPC10C0N->P325&二~0x07;//11111000相当于清零最后三位LPC_IOCON->P3_25LPC_IOCON
7、->P3_27LPC_IOCON->P3_27LPC_IOCON->P3_29LPCI0C0N->P329
8、二2;//O010-01OP158,P3.25作PWM1[2]输出&二~0x07;
9、=2;//与上同,P3.27作PWM1[4]输出&二~0x07;I二2;//与上同,P3.29作PWM1[6]输出iTmp二PeripheralClock/10000;//FPCLK_FREQ分频,PWM计数频率LPC_PWM1->PR—0x00;//不分频LPC_PWM1->MCR=0x02;//PWMMRO与PWMTC匹配时复位PWMTCLPC_PWM1->PCR=(1«2)
10、//P
11、WM2双边沿控制(1«4)I//PWM4双边沿控制(1«6)I//PWM6双边沿控制(1«10)
12、//使能PWM2输出(1«12)
13、〃使能PWM4输出(1«14);〃使能PWM6输出LPC_PWM1->MR0二iTmp;//T=1710000=0.1ms=100us,PWM速率控制/计数初值,设置双边沿脉冲的脉宽和位置LPC_PWM1->MR1=LPC_PWM1->MR2二置LPC_PWM1->MR3二LPC_PWM1-〉MR4二PWM4的复位位置LPC_PWM1->MR5=LPC_PWM1->MR6=PWM6的复位位置0;//设置初始值为低电平,然后立即变上升沿,PWM2的
14、置位位置*(iTmp(iTmp(iTmp(iTmp(iTmp/8)/8)/8)/8)/8)7;//占空比=7/8*1OOus的时间后下降沿,PWM2的复位位2;//PWM4的置位位置6;//MR3与MR4两路占空比二4/8*100us的时间后下降沿,3;//PWM6的置位位置5;//MR3与MR4两路占空比=2/8*100us的时间后下降沿,LPC_PWM1->LER=LPC_PWM1->TCR=LPC_PWM1->TCR==Ox7F;//01111111,锁存所有PWM匹配值=0x02;//复位PWMTC=0x09;//使能PWM}intmain(void)Systemln
15、it();pwmDbl1nit();//系统初始化,切勿删除//初始化1/0口,设置P3.25//P3.27、P3.29为双边沿输出while(1);H:通过修改某些语句从而使得波形的周期和占空比发生变化通过改变voidpwmDblInit(void)子函数中的MR1/MR2(或者MR3/MR4.MR5/MR6)的设置,可以使得波形的周期和占空比发生变化,这里不再举例。(2)PWM中断—:实验现象本次实验是使用LPC178/177x系列Cortex-M3中的PWM输出功能的定时中断功能,通过PWM的定时
此文档下载收益归作者所有