第7章 TMS320LF2407事件管理器模块
更新时间:2023-08-20 03:59:01 阅读量: 高等教育 文档下载
第7章事件管理器模块(EV)
例给出了通用定时器1在连续增计数模式下的初始化例程。
例连续增计数模式的初始化例程
LDP #DP_EVA ;指向7400h~7480h单元
SPLK #41H,GPTCONA ;TCOMPOE=1 允许定时器比较输出
SPLK #5H,T1PR ;设置周期寄存器
SPLK #3H,T1CMPR ;设置比较寄存器
SPLK #0H,T1CNT ;设置计数寄存器
SPLK #0174EH,T1CON ;TMODE=10 连续增计数模式,TPS=111 预分频为128
;TENABLE=1 定时器计数使能,TCLKS=00 内部时钟
;TECMPR=1 定时器1比较使能,SELT1PR=0
3 定向增/减计数模式
例定向增/减计数模式的初始化例程
LDP #DP_EVA ;指向7400h~7480h单元
SPLK #41H,GPTCONA ;TCOMPOE=1 允许定时器比较输出
SPLK #5H,T1PR ;设置周期寄存器
SPLK #3H,T1CMPR ;设置比较寄存器
SPLK #0H,T1CNT ;设置计数寄存器
SPLK #01F4EH,T1CON ;TMODE=11 定向增/减计数模式,TPS=111
;预分频为128
;TENABLE=1 定时器计数使能,TCLKS=0 内部时钟
;TECMPR=1 定时器1比较使能,SELT1PR=0
4 连续增/减计数模式
例连续增/减计数模式的初始化例程
LDP #DP_EVA ;指向7400h~7480h单元
SPLK #41H,GPTCONA ;TCOMPOE=1 允许定时器比较输出
SPLK #5H,T1PR ;设置周期寄存器
SPLK #3H,T1CMPR ;设置比较寄存器
SPLK #0H,T1CNT ;设置计数寄存器
SPLK #0F4EH,T1CON ;TMODE=01 连续增/减计数模式,TPS=111
;预分频为128
;TENABLE=1 定时器计数使能,TCLKS=00 内部时钟
;TECMPR=1 定时器1比较使能,SELT1PR=0
通用定时器的中断实现
.include "" ;引用头部文件
.def _c_int0
(1)建立中断向量表
.sect ".vectors" ;定义主向量段
RSVECT B _c_int0 ;PM 0 复位向量1 INT1 B PHANTOM ;PM 2 中断优先级1 4
INT2 B GISR2 ;PM 4 中断优先级2 5 INT3 B PHANTOM ;PM 6 中断优先级3 6
INT4 B PHANTOM ;PM 8 中断优先级4 7
INT5 B PHANTOM ;PM A 中断优先级5 8
INT6 B PHANTOM ;PM C 中断优先级6 9 RESERVED B PHANTOM ;PM E 模拟量输入中断(保留) 10
SW_INT8 B PHANTOM ;PM 10 用户定义软件中断—
…
SW_INT31 B PHANTOM ;PM 3E 用户定义软件中断—
;中断子向量入口定义pvecs
.sect ".pvecs" ;定义子向量段
PVECTORS B PHANTOM ;保留向量地址偏移量-0000h
B PHANTOM ;保留向量地址偏移量-0001h
…
B PHANTOM ;保留向量地址偏移量-0026h
B T1PINT_ISR ;保留向量地址偏移量-0027h T1PINT中断
B PHANTOM ;保留向量地址偏移量-0028h
…
B PHANTOM ;保留向量地址偏移量-0041h
(2)主程序
.text
_c_int0
SETC INTM
CLRC SXM
CLRC OVM
CLRC CNF ;B0区被配置为数据空间
LDP #0E0H ;指向7000h~7080h区
SPLK #81FEH,SCSR1 ;时钟4倍频,CLKIN=6 M,CLKOUT=24 M
SPLK #0E8H,WDCR ;不使能WDT
LDP #0
SPLK #02H,IMR ;使能中断优先级INT2
SPLK #0FFFFh,IFR ;清中断标志
LDP #DP_EVA ;指向7400h~7480h区
SPLK #80H,EVAIMRA ;使能T1PINT 中断
SPLK #0FFFFh,EVAIFRA ;清EVA中断标志
SPLK #0,GPTCONA
SPLK #177H,T1PR ;使定时器每1ms产生一次中断
SPLK #0,T1CNT
SPLK #0164CH,T1CON ;TMODE=10 连续增计数模式,TPS=110 预分频为64
;TENABLE=1 定时器计数使能, TCLKS=00
;内部时钟
;TECMPR=1 定时器1比较使能, SELT1PR=0 CLRC INTM ;开总中断
WAIT:NOP
B WAIT
(3)中断程序
GISR2:;优先级INT2中断入口
保护现场
LDP #0E0H
LACC PIVR,1 ;读取外设中断向量寄存器(PIVR),并左移一位
ADD #PVECTORS ;加上外设中断入口地址
BACC ;跳到相应的中断服务子程序
T1PINT_ISR:;通用定时器1中断入口
LDP #DP_EVA
SPLK #0,T1CNT
GISR2_RET:;中断返回
恢复现场
CLRC INTM ;开总中断,因为一进中断就自动关闭总中断
RET
(3)假中断程序
PHANTOM
KICK_DOG ;复位看门狗
RET
END
PWM波形产生举例
.include "" ;引用头部文件
.def _c_int0
;(1)建立中断向量表
.sect ".vectors" ;定义主向量段
RSVECT B _c_int0 ;PM 0 复位向量 1
INT1 B PHANTOM ;PM 2 中断优先级1 4
INT2 B GISR2 ;PM 4 中断优先级2 5
INT3 B PHANTOM ;PM 6 中断优先级3 6
INT4 B PHANTOM ;PM 8 中断优先级4 7
INT5 B PHANTOM ;PM A 中断优先级 5 8
INT6 B PHANTOM ;PM C 中断优先级 6 9
RESERVED B PHANTOM ;PM E (保留位) 10
SW_INT8 B PHANTOM ;PM 10 用户定义软件中断—
…
SW_INT31 B PHANTOM ;PM 3E 用户定义软件中断—
;中断子向量入口定义pvecs
.sect ".pvecs" ;定义子向量段
PVECTORS B PHANTOM ;保留向量地址偏移量–0000h
B PHANTOM ;保留向量地址偏移量–0001h
…
B PHANTOM ;保留向量地址偏移量 -002Eh
B T3GP_ISR ;保留向量地址偏移量 -002Fh T3PINT中断
B PHANTOM ;保留向量地址偏移量–0030h
…
B PHANTOM ;保留向量地址偏移量–0041h
;(2)主程序
.text
_c_int0
CALL SYSINIT ;系统初始化程序
CALL PWM_INIT ;EVB模块PWM初始化程序
WAIT
NOP
B WAIT
;(3)系统初始化程序
SYSINIT:
SETC I NTM
CLRC S XM
CLRC OVM
CLRC CNF ;B0区被配置为数据空间
LDP #0E0H ;指向7000h~7080h区
SPLK #81FEH,SCSR1 ;时钟4倍频,CLKIN=6 M,CLKOUT=24 M
SPLK #0E8H,WDCR ;不使能WDT
LDP #0
SPLK #0002H,IMR ;使能中断第2级INT2
SPLK #0FFFFH,IFR ;清全部中断标志
RET
;(4)EVB模块的PWM初始化程序
PWM_INIT:
LDP #DP_PF2 ;指向7080h~7100h区
LACL MCRC
OR #007EH ;IOPE[1~6]被配置为基本功能方式:PWM[7~12]
SACL MCRC
LDP #DP_EVB ;指向7500h~7580h区
SPLK #0FFFFH,EVBIFRA ;清EVB 全部中断标志
SPLK #0666H,ACTRB ;PWM12,10,8 低有效,PWM11,9,7 高有效
SPLK #00H,DBTCONB ;不使能死区控制
SPLK #10H,CMPR4 ;设置比较初值 PWM7高电平占50/60,
;低电平占10/60
SPLK #20H,CMPR5 ;设置PWM9,10的比较寄存器
SPLK #30H,CMPR6 ;设置PWM11,12的比较寄存器
SPLK #60H,T3PR ;设置定时器3周期寄存器,
;即PWM周期为60个CPU时钟周期
SPLK #0A600H,COMCONB ;使能比较操作
SPLK #0,T3CNT
SPLK #41H,GPTCONB ;TCOMPOE=1,T3PIN=01
SPLK #080H,EVBIMRA ;通用定时器3使能
SPLK #0174EH,T3CON ;TMODE=10 连续增计数模式,TPS=111 预分频为128
;TENABLE=1 定时器计数使能, TCLKS=00
;内部时钟
;TECMPR=1 定时器3比较使能, SELT3PR=0 CLRC INTM ;开总中断
RET
;(5)定时器3中断程序
GISR2:;优先级INT2中断入口
保护现场
LDP #0E0H
LACC PIVR,1 ;读取外设中断向量寄存器(PIVR),并左移一位
ADD #PVECTORS ;加上外设中断入口地址
BACC ;跳到相应的中断服务子程序
T3GP_ISR:;通用定时器3中断入口
LDP #DP_EVB
SPLK #0,T3CNT
GISR2_RET:;中断返回
恢复现场
CLRC INTM ;开总中断,因为一进中断就自动关闭总中断
RET
;(6)假中断程序
PHANTOM
KICK_DOG ;复位看门狗
RET
END
捕获单元应用举例
CAP4TEMP .usect ".data0",1 ;CAP4 临时寄存器
.include "" ;引用头部文件
.def _c_int0
;(1)建立中断向量表
.sect ".vectors" ;定义主向量段
RSVECT B _c_int0 ;PM 0 复位向量 1
INT1 B PHANTOM ;PM 2 中断优先级 1 4
INT2 B PHANTOM ;PM 4 中断优先级2 5
INT3 B PHANTOM ;PM 6 中断优先级 3 6
INT4 B GISR4 ;PM 8 中断优先级4 7
INT5 B PHANTOM ;PM A 中断优先级 5 8
INT6 B PHANTOM ;PM C 中断优先级 6 9 RESERVED B PHANTOM ;PM E (保留位) 10
SW_INT8 B PHANTOM ;PM 10 用户定义软件中断—
…
SW_INT31 B PHANTOM ;PM 3E 用户定义软件中断—
;中断子向量入口定义pvecs
.sect ".pvecs" ;定义子向量段
PVECTORS B PHANTOM ;保留向量地址偏移量-0000h
B PHANTOM ;保留向量地址偏移量-0001h
…
B PHANTOM ;保留向量地址偏移量-0035h
B CAP4_ISR ;保留向量地址偏移量-0036h CAP4中断
B PHANTOM ;保留向量地址偏移量-0037h
…
B PHANTOM ;保留向量地址偏移量-0041h
;(2)主程序
.text
_c_int0
LDP #5
SPLK #00H,CAP4TEMP
CALL SYSINIT
CALL CAP_INIT ;调CAP4初始化程序
WAIT
NOP
B LOOP
;(3)系统初始化程序
SYSINIT:
SETC I NTM
CLRC S XM
CLRC OVM
CLRC CNF ;B0区被配置为数据空间
LDP #0E0H ;指向7000h~7080h区
SPLK #81FEH,SCSR1 ;时钟4倍频,CLKIN=6 M,CLKOUT=24 M SPLK #0E8H,WDCR ;不使能WDT
LDP #0
SPLK #0008H,IMR ;使能中断第4级INT4
SPLK #0FFFFH,IFR ;清全部中断标志
RET
;(4)捕获单元初始化程序
CAP_INIT:
LDP #DP_PF2 ;指向7090h~7100h
LACL MCRC
OR #0380H ;IOPE7, IOPF0, IOPF1 被配置为
;特殊功能方式:CAP[4~6]
SACL MCRC
SETC INTM
LDP #DP_EVB
SPLK #049H,GPTCONB ;TCOMPOE=1,T4PIN=10,T3PIN=01
SPLK #0,T3CNT
SPLK #01742H,T3CON ;TMODE=10 连续向上计数模式,TPS=111
;预分频为128
;TENABLE=1 定时器计数使能, TCLKS=00
;内部时钟
;TCLD=00, TECMPR=1 定时器3比较
;使能, SELT3PR=0
SPLK #0FFFFH,T3PR ;定时器周期比较寄存器设为最大
SPLK #00H,EVBIMRA
SPLK #00H,EVBIMRB
SPLK #22C0H,CAPCONB ;CAP4 捕获允许,捕获上升沿
SPLK #01H,EVBIMRC ;CAP4 中断使能
SPLK #0FFFFh,EVBIFRA ;清 EVB 全部中断标志
SPLK #0FFFFh,EVBIFRB
SPLK #0FFFFh,EVBIFRC
CLRC INTM ;开总中断
RET
;(5)中断程序程序
GISR4:;优先级INT4中断人口
;保护现场
LDP #0E0H
LACC PIVR,1 ;读取外设中断向量寄存器(PIVR),并左移一位
ADD #PVECTORS ;加上外设中断人口地址
BACC ;跳到相应的中断服务子程序
CAP4_ISR:;捕获单元4中断程序入口
LDP #DP_EVB
LACL CAP4FIFO
LDP #5
SACL CAP4TEMP ;读出捕获的值
LDP #DP_EVB
SPLK #0,T3CNT ;清 T3 计数值,使其重新计数
GISR2_RET:;中断返回
恢复现场
CLRC INTM ;开总中断,因为一进中断就自动关闭总中断
RET
;(6)假中断程序
PHANTOM
KICK_DOG ;复位看门狗
RET
END
正在阅读:
2022年重庆师范大学音乐学院632艺术基础理论考研题库04-12
最短路径射线追踪方法及其改进04-22
铁路软土路基主要处理技术设计总结09-30
如何构建一个大肠杆菌高校表达的分子克隆08-15
国家中医药管理局“十一五“重点专科(专病)项目建设中期汇报会总结05-20
双侧原发性乳腺癌临床特点分析03-01
GIS在地籍管理中的应用05-20
声音的延时和混响仿真12-03
郑州市消防行政受理大厅服务指南03-21
- 2012诗歌鉴赏讲座 师大附中张海波
- 2012-2013学年江苏省苏州市五市三区高三(上)期中数学模拟试卷(一)
- 市政基础设施工程竣工验收资料
- 小方坯连铸机专用超越离合器(引锭杆存放用)
- 荀子的学术性质之我见
- 氩弧焊管轧纹生产线操作说明
- 小学科学六年级上册教案
- (商务)英语专业大全
- 外汇储备的快速增长对我国经济发展的影响
- 幼儿园中班优秀语言教案《小猴的出租车》
- 第七章 仪表与显示系统
- 身份证号码前6位行政区划与籍贯对应表
- 单位(子单位)工程验收通知书
- 浅谈地铁工程施工的项目成本管理
- 沉积学知识点整理
- 前期物业管理中物业服务企业的法律地位
- 2014微量养分营养试卷
- 地质专业校内实习报告范文(通用版)
- 内部审计视角下我国高校教育经费支出绩效审计研究
- 高次插值龙格现象并作图数值分析实验1
- TMS320LF2407
- 模块
- 事件
- 管理
- 哲学常用原理方法论整理
- 《数据库原理与应用》第2章 初步使用中文Visual Foxpro 6.0
- 兴化市2013-2014学年八年级(下)期末考试数学试题及答案
- 上汽荣威品牌介绍
- 火焰原子吸收光谱法测定荷叶中几种营养元素含量
- 苹果减肥法瘦15斤 苹果减肥的正确方法
- 贵州省地质公园建设技术要求
- 建筑物的防雷分类(新)
- 地下连续墙施工方案最终版
- RLC电路谐振特性研究
- 贵州大学学报(自然科学版)征稿简则
- 招聘高新人才有风险
- 净宗法师:不可用通途法门衡量净土法门
- 第10章 期权
- TT付款下的风险及应对方法
- 新标准英语六年级第八册第十模块复习与练习(B)
- 丁果A320 Dingux+Z4使用说明书
- 73.转换到Rinex格式
- web程序设计(JSP)课程设计总结
- 如何编制风投融资用示功仪项目商业计划书(风投+融资).pdf