网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61IC中国电子在线 >> DSP >> 代码示例 >> TI DSP代码示例 >> C2000 >> 文章正文
  基于DSP240x PWM波形产生举例         ★★★ 【字体:
基于DSP240x PWM波形产生举例
作者:61IC    文章来源:本站原创    点击数:    更新时间:2007-1-16    

PWM波形产生举例

程序如下:

(1)         所需的复位和中断向量定义文件“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 

(2)         主程序

// 该程序利用EVB模块的PWM7——PWM12引脚产生不同占空比的方波

#include "register.h"

//  屏蔽中断程序       

void inline disable()

{

     asm(" setc INTM")

}

// 系统初始化子程序

int  initial()

{

     asm(" setc    SXM")                // 符号位扩展有效

     asm(" clrc    OVM")                // 累加器中结果正常溢出

     asm(" clrc    CNF")                // B0被配置为数据存储空间

     *SCSR1=0x81FE                  // CLKIN=6MCLKOUT=4*CLKIN=24M

     *WDCR=0x0E8               // 不使能看门狗,因为SCSR2中的WDOVERRIDE

                                     // WD保护位复位后的缺省值为1,故可以用

                                     // 软件禁止看门狗

     *IMR=0x0000                    // 禁止所有中断

     *IFR=0x0FFFF                   // 清除全部中断标志,"10"

     WSGR=0X00                      // 禁止所有的等待状态

}

// EVB模块的PWM初始化程序

int  pwminitial()

{

     *MCRC=*MCRC|0X007E        // IOPE1-6被配置为基本功能方式,PWM7-12

     *ACTRB=0X0666                  // PWM12108 低有效,PWM1197 高有效

     *DBTCONB=0X00                  // 不使能死区控制

     *CMPR4=0X1000

     *CMPR5=0X3000

     *CMPR6=0X5000

     *T3PER=0X6000                  // 设置定时器3的周期寄存器,并设置CMPR4-6,以确定不

// 同的输出占空比

     *COMCONB=0X8200           // 使能比较操作

     *T3CON=0X1000                  // 定时器3为连续增计数模式

}

// 该中断服务程序主要是为了防止干扰,不做任何其它操作

void interrupt nothing()

{

     return                         // 中断直接返回

}

// 主程序

main( )

{

     disable()                          // 总中断禁止

     initial()                          // 系统初始化

     pwminitial()                       // PWM输出初始化

     *T3CON=*T3CON|0x0040      // 启动定时器3

while(1)

{

}

}

               欢迎点击进入:TI德州中文网   (国内唯一针对TI应用的中文技术网站)    文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    基于DSP2407产生带死区的6个…
    DSP2407平台下用C语言实现的…
    利用DSP2407控制马达代码
    DSP2407控制320*240大液晶显…
    基于DSP240x的串行EEPROM的接…
    基于DSP240x的串行EEPROM的接…
    TMS320LF2407与图形液晶显示…
    一个基于DSP2407串行通信接口…
    基于DSP2407 CAN控制器的程序…
    DSP2407头文件和命令文件示例…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61IC 湘ICP备05002478号