网站大量收购独家精品文档,联系QQ:2885784924

DSP_课件PWM波形产生举例.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DSP_课件PWM波形产生举例

7.4.4 PWM波形产生举例 程序如下: 所需的复位和中断向量定义文件“vectors.asm” // 该文件利用汇编语言代码定义了复位和中断向量 .ref _nothing;直接返回的中断服务程序符号 .ref _c_int0 ;复位向量符号 .sect .vectors RSVECT B _c_int0 // PM 0 复位向量 1 INT1 B _nothing // PM 2 中断优先级1 4 INT2 B _nothing // PM 4 中断优先级2 5 INT3 B _nothing // PM 6 中断优先级3 6 INT4 B _nothing // PM 8 中断优先级4 7 INT5 B _nothing // PM A 中断优先级5 8 INT6 B _nothing // PM C 中断优先级6 9 主程序 // 该程序利用EVB模块的PWM7——PWM12引脚产生不同占空比的方波 #include register.h // 屏蔽中断程序 void inline disable() { asm( setc INTM); } initial() { asm( setc SXM); // 符号位扩展有效 asm( clrc OVM); // 累加器中结果正常溢出 asm( clrc CNF); // B0被配置为数据存储空间 *SCSR1=0x81FE;// CLKIN=6M,CLKOUT=4*CLKIN=24M } // EVB模块的PWM初始化程序 int pwminitial() { *MCRC=*MCRC|0X007E; // IOPE1-6被配置为基本功能方式,PWM7-12 *ACTRB=0X0666; // PWM12,10,8 低有效,PWM11,9,7 高有效 *DBTCONB=0X00; // 不使能死区控制 *CMPR4=0X1000; *CMPR5=0X3000; *CMPR6=0X5000; } // 该中断服务程序主要是为了防止干扰,不做任何其它操作 void interrupt nothing() { return; // 中断直接返回 } // 主程序 main( ) { disable(); // 总中断禁止 initial(); // 系统初始化 pwminitial(); // PWM输出初始化 *T3CON=*T3CON|0x0040; // 启动定时器3 while(1) { ; } }vectors.asm” // 该文件利用汇编语言代码定义了复位和中断向量 .title vectors.asm .ref _c_int0,_nothing,_capint .sect .vectors reset: b _c_int0 int1: b _nothing int2: b _nothing int3: b _nothing int4: b _capint int5: b _nothing int6: b _nothing 主程序 // 该程序用于测试DSP的CAPTURE模块,由TIMER1的比较模块输出一个PWM 波形, // 此波形输入CAP4引脚,待CAP4捕捉该PWM的10次上升沿后,停止捕捉,并把10 // 次捕捉值存于数组result[10]中 #include register.h // 初始化子程序 int result[10]; // 定义一个存储结果的数组 int k=0; // 系统初始化子程序 int initial() { asm( setc INTM); // 禁止所有中断 asm( setc SXM); // 抑制符号位扩展 asm( clrc OVM); // 累加器中结果正常溢出 asm( clrc CNF); // B0被配置为数据存储空间 *SCSR1=0x81FE;// CLKIN=6M,CLKOUT=4*CLKIN=24M } // 捕获单元4初始化子程序 int CAP4INT() { *T3PER=0X0FFFF; // 通用定时器3的周期寄存器为0XFFFF *T3CON=0X1400; //

文档评论(0)

ligennv1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档