![]() |
|
||||||||||||||
| . 网站首页 . 新闻 . 新品 . 方案 . 专访 . 活动 . DSP . EDA . 评测室 . 技术文库 . 会员区 . 商城 . 服务导航 . 邮购 . 资源 . | ||
|
||
|
|||||
| TMS320LF2407控制步进电机的程序 | |||||
作者:61IC客服 文章来源:本站原创 点击数: 更新时间:2006-4-30 ![]() |
|||||
|
; File Name:PWM.asm ;******************************************************* .title "PWM" .include LF2407.inc .include CPU.inc .include GPIO.inc ;******************************************************* TxdPtr: .usect "data", 8 RxdPtr: .usect "data", 8 .data counterValue .byte 1 ;******************************************************* .def _c_int0 .def GIsr2 .ref Pvect ;******************************************************* ; 主程序开始 .text _c_int0: call fSysInit ldp #DP_PF2 splk #MCRAV, MCRA splk #MCRBV, MCRB splk #7f01h, PADATDIR splk #0808h, PBDATDIR ; splk #80h, EVAIMRA ; splk #0ffffh, EVAIFRA ; splk #0, GPTCONA ; splk #177h, T1PR ; splk #0, T1CNT ; splk #0164ch, T1CON ; clrc INTM ;wait: ; nop ; b wait ; call fSciInit ; call evaPwmInit Main: ldp #0000h LoopMain: ldp #00e1h call StepMotor b LoopMain ;******************************************************* evaPwmInit: ; ldp #DP_PF2 ; 指向 7080h~7100h lacl MCRA or #PWMMCR ; PA.1~PA.4配置为PWM输出 sacl MCRA ldp #DP_EVA ; splk #0ffffh, EVAIFRA ; 清除EVA全部中断标志 splk #0666h, ACTRA ; PWM2、4低有效,PWM1、3高有效 splk #00h, DBTCONA ; 不使能死区控制 splk #10h, CMPR1 ; 设置比较初值PWM1高电平占50/60,低电平上10/60 splk #20h, CMPR2 ; 设置PWM3、4的比较寄存器 splk #60h, T1PR ; 设置定时器1周期寄存器,即PWM周期为60个CPU时钟周期 splk #0a600h, COMCONA ; 使能比较操作 splk #0, T1CNT splk #41h, GPTCONA ; TCOMPOE=1, T1PIN=01 splk #080h, EVAIMRA ; 通用定时器1使能 splk #174eh, T1CON ; TMODE=10连续增计数模式,TPS=111预分频为128 ; TENABLE=1定时器计数使能,TCLKS=00内部时钟 ; TECMPR=1定时器1比较使能,SELT1PR=0 clrc INTM ; 开总中断 ret ;******************************************************* StepMotor: call fDelay lacc PADATDIR and #STEPMASK or #step1 sacl PADATDIR call fDelay lacc PADATDIR and #STEPMASK or #step2 sacl PADATDIR call fDelay lacc PADATDIR and #STEPMASK or #step3 sacl PADATDIR call fDelay lacc PADATDIR and #STEPMASK or #step4 sacl PADATDIR b StepMotor ret ;******************************************************* fSendChar: ; 发送一个字符 mar AR2 lacc #'b' sacl * ; 发送数据到SCITXBUF寄存器 LoopSendChar: ldp #DP_PF1 bit SCICTL2, BIT7 bcnd LoopSendChar, NTC ret ;******************************************************* ; 系统初始化程序 fSysInit: setc INTM ; 初始化期间禁止中断 clrc SXM ; 清符号扩展模式 clrc OVM ; 溢出模式复位 clrc CNF ; 配置B0块到数据存储区 ldp #DP_PF1 ; 设置DP=E0H,则数据存储器地址为7000H~707FH splk #81feh, SCSR1 ; CLKOUT=CLKIN*4 ; splk #0041h, SCSR1 ; CLKOUT=CLKIN*4 splk #00e8h, WDCR ; 不使能WDT ldp #0 splk #0002h, IMR ; 不使能中断 splk #0ffffh, IFR ; 清除全部中断标志 ret ;******************************************************* ; SCI接口初始化程序 fSciInit: ldp #0e1h lacl MCRB or #18h sacl MCRB ; 配置串行口引脚为特殊功能:TXD、RXD ldp #DP_PF1 splk #00fh, SCICCR ; 地址位唤醒模式,N,8,1 splk #007h, SCICTL1 ; 接收、发送、内部时钟使能,SLEEP=1 splk #002h, SCICTL2 ; 接收中断使能 splk #(BRR/256), SCIHBAUD splk #(BRR & 0ffh), SCILBAUD ; 设置波特率寄存器 splk #023h, SCICTL1 ; 串口初始化完成 lar ar1, #SCIRXBUF ; 接收缓冲寄存器地址 lar ar2, #SCITXBUF ; 发送缓冲寄存器地址 lar ar3, #RxdPtr ; 接收的数据指针 lar ar4, #TxdPtr ; 发送的数据指针 ldp #0 splk #0001h, IMR ; 允许INT1中断 splk #0ffffh, IFR ; 清所有中断标志 clrc INTM ; 开总中断 ret ;******************************************************* GIsr1: ; 优先级INT1中断入口 ldp #0e0h lacc PIVR, 1 ; 读取外设中断向量寄存器,并左移一位 add #Pvect ; 加上外设中断入口地址 bacc ; 跳到相应的中断服务子程序 ExitGIsr1: ; 恢复现场 clrc INTM ; 开中总断,因为一进中断就自动关闭总中断 ret ;******************************************************* RxInt: ; SCI接收中断服务程序 ldp #DP_PF1 mar *, AR1 bit SCICTL1, BIT2 b ExitGIsr1 ;******************************************************* GIsr2: ; 优先级INT2中断入口 ldp #DP_PF1 lacc PIVR, 1 add #Pvect bacc ExitGIsr2: ; 恢复现场 clrc INTM ; 开中总断,因为一进中断就自动关闭总中断 ret ;******************************************************* T1PInt: ; 通用定时器1中断入口 ldp #DP_EVA splk #0, T1CNT b ExitGIsr2 ;******************************************************* ; 延时程序 fDelay: mar *, ar4 lar ar4, #02ffeh lar ar0, #00h LoopDelay: sbrk #1 nop cmpr 00 bcnd LoopDelay, ntc ret ;******************************************************* .end |
|||||
| 欢迎点击进入:TI德州中文网 (国内唯一针对TI应用的中文技术网站) 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | | |||
|
|