- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
继续我的第四个实验;实现定时器中断函数处理LD4翻转、按键IO中断控制LD3翻转;
学习目的:中断寄存器的设置,IO中断、定时器中断的使用,
F28335共有三个定时器:timer0、timer1、timer2(timer2也可用于DSP/BIOS);
功能描述:
上电默认LD3、LD4灭;
初始化完成后,LD4以1HZ(1S)频率做状态翻转;LD3接受按键控制,每触发一次按键,状态翻转一次。
电路连接说明:
LD4、LD3 设置为通用GPIO 上拉输出 初始化后默认为输出LED灯灭状态;LD4、LD3控制LED灯的负极,如下图;
本次实验选用定时器0,程序时刻读取计数器的值,当值为0时,产生定时器0中断,LD4状态翻转;
IO按键SW12中断控制LD3状态翻转。
定时器0中断程序设计说明:
步骤一、定时器0的预定标寄存器和计数器设置:定时器输入时钟为sysclkout(=135MHz),
如果定时1S(即1Hz)中断一次(即计数结束), 1Hz=135Mhz/1350/100000
预定标寄存器(即分频器)设为1350,计数器设为100000;
如果定时1ms(即1000Hz)中断一次, 计算公式为:1000Hz=135Mhz/1350/100
预定标寄存器同样设为1350,计数器设为100;
赋值语句如下:
//定时器0 设为1Hz = 135MHz/(1350*100000)
CpuTimer0Regs.PRD.all = 100000;//计数周期寄存器,100000周期后计数器减为0
CpuTimer0Regs.TPR.bit.TDDR = 1350 0xFF;//0x546 预定标寄存器(预分频器)
CpuTimer0Regs.TPRH.bit.TDDRH = (13508) 0x00FF;//0x546 预定标寄存器(预分频器)
步骤二、
设置定时器0相关中断寄存器 使能定时器0中断,即CpuTimer0Regs.TCR.bit.TIE = 1; //使能定时器0中断
设置PIE级相关中断寄存器 定时器0中断所在PIE组使能,即PIEIERx寄存器设置
设置CPU级中断相关寄存器 CPU级使能上述PIE对应的通道,即IER寄存器设置
步骤三、
中断向量入口映射位置设置,如下:
EALLOW; // This is needed to write to EALLOW protected registers
PieVectTable.TINT0 = cpu_timer0_isr; //将中断函数物理地址赋值给中断向量入口
PieVectTable.XINT3 = key_GPIO50_isr;
EDIS; // This is needed to disable write to EALLOW protected registers
IO中断程序设计说明:
步骤一、
设置IO引脚功能复用寄存器为普通IO、设为上拉、输入状态、使能引脚滤波功能;
外部中断源选择寄存器设置:如GpioIntRegs.GPIOXINT3SEL.bit.GPIOSEL=50;//按键引脚编号设置
步骤二、
使能外部中断源中断;XIntruptRegs.XINT3CR.bit.ENABLE=1;//使能中断
设置触发方式:XIntruptRegs.XINT3CR.bit.POLARITY=0;//下降沿触发
剩余步骤同定时器0中断的设置。
注意:
在对分频寄存器设置时出现问题,TDDR、TDDRH是两个8位寄存器组成的16位寄存器。
在对外部中断源选择寄存器设置时,应增加EALLOW、EDIS
源程序如下:
#include DSP2833x_Device.h // DSP2833x Headerfile Include File
#include DSP2833x_Examples.h // DSP2833x Examples Include File
// Prototype statements for functions found within this file.
__interrupt void cpu_timer0_isr(void);
__interrupt void key_GPIO50_isr(void);
#define LD3_ON() GpioDataRegs.GPACLEAR.bit.GPIO0 = 1
#define LD3_OFF() GpioDataRegs.GPASET.bit.GPIO0 = 1
#define LD3_TOGGLE() GpioDataRegs.GPAT
您可能关注的文档
最近下载
- 高标准农田项目施工部项目管理班子的人员岗位职责工.docx VIP
- 电气二次培训基地继电保护试题库填空题 .pdf VIP
- DeepSeek+AI大模型赋能智能制造数字化工厂供应链大数据解决方案.pptx VIP
- JEDEC JESD85-2001Methods fo 国外国际规范.pdf VIP
- 免疫治疗-(精品课件).ppt VIP
- 赛迪:中国大数据区域发展水平评估报告.docx VIP
- 全国灌溉水有效利用系数测算分析技术指导细则(2024修订版)知识培训.pptx VIP
- 生物化学与基础分子生物学实验智慧树知到课后章节答案2023年下中山大学.docx VIP
- 中考词汇1600分类速记表 (1)(1)(1).pdf VIP
- 全季酒店--香氛设备布点原则.pdf VIP
文档评论(0)