- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
无线传感器网络实验教程中断实验 主讲教师:柯宗武 2012年12月 本章内容 实验内容: 利用外部中断方式编写按键驱动跑马灯程序 使用定时器来延时 CC2530中断系统介绍 与中断相关的SFR介绍 中断程序编写方法 CC2530中断系统介绍 CPU具有18个中断源,每个源在中断标志SFR寄存器中具有自己的请求标志位。每个中断源可以独立地使能和禁止,中断具有不同的优先级。 每个中断源可以通过中断使能寄存器IEN0,IEN1和IEN2分别进行使能和禁止。 CC2530中断系统介绍 为了使能任何一个中断,必须采取以下的步骤: 清除中断标志 在外设SFR寄存器中设置各自的中断使能位 在IEN0/IEN1或IEN2寄存器中设置各自相应的中断使能位 设置寄存器IEN0中的全局中断使能位EA 在相应中断的中断矢量中开始中断服务程序 PICTL (P口中断控制寄存器) 例:P0_6作为外部中断的配置 1.清除中断标志 P0IFG = 0 P0IFG =~0x40; 例:P0_6作为外部中断的配置 2.在外设SFR寄存器中设置各自的中断使能位 P0IEN |= 0X40 例:P0_6作为外部中断的配置 3.在IEN0/IEN1或IEN2寄存器中设置各自相应的中断使能位 IEN1 |= 0X20; // P0IE = 1;开启P0口中断 例:P0_6作为外部中断的配置 设置寄存器IEN0中的全局中断使能位EA EA=1 例:P0_6作为外部中断的配置 5.在相应中断的中断矢量中开始中断服务程序 #pragma vector = P1INT_VECTOR __interrupt void P1_ISR(void) {......} 预处理指令#pragma #Pragma 的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。常用来发出明确的指令来生成和优化编译。 #pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。 依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。 #pragma vector 在IAR编译器里,用#pragma vector来提供中断函数的入口地址。 用关键字来__interrupt来定义一个中断函数。 格式: #pragma vector = 中断入口地址 __interrupt void 中断处理函数名(参数列表) 本征函数 本征函数(内在函数) 编译器自己编写的能够直接访问处理器底层特征的函数。 使用IAR中的本征函数通常需要包含头文件intrinsics.h 例如: __disable_interrupt( );//插入CLI指令, 也可以用_CLI(); __enable_interrupt( );// 插入SEI指令,也可以用_SEI(); Copyright:柯宗武 * P0 (0-7)中断配置 0 上升沿触发,1 下降沿触发 读/写 0 P0ICON 0 P1 (0-7)中断配置 0 上升沿触发,1 下降沿触发 读/写 0 P1ICON 1 P2 (0-4)中断配置 0 上升沿触发,1 下降沿触发 读/写 0 P2ICON 2 P0(0-3)中断使能位:0 关中断,1 开中断 读/写 0 P0IENL 3 P0(4-7)中断使能位:0 关中断,1 开中断 读/写 0 P0IENH 4 P2(0-4)中断使能位:0 关中断,1 开中断 读/写 0 P2IEN 5 输出驱动能力选择 0 最小驱动能力,1 最大驱动能力 读/写 0 PADSC 6 预留 读 0 - 7 功能描述 可操作性 复位值 位名 位号 CC2530用户手册 P00中断掩码:0 关中断,1 开中断 读/写 0 P0_0IEN 0 P01中断掩码:0 关中断,1 开中断 读/写 0 P0_1IEN 1 P02中断掩码:0 关中断,1 开中断 读/写 0 P0_2IEN 2 P03中断掩码:0 关中断,1 开中断 读/写 0 P0_3IEN 3 P04中断掩码:0 关中断,1 开中断 读/写 0 P0_4IEN 4 P05中断掩码:0 关中断,1 开中断 读/写 0 P0_5IEN 5 P06中断掩码:0 关中断,1 开中断 读/写 0 P0_6IEN 6 P07中断掩码:0 关中断,1 开中断 读/写 0 P0_7IEN 7 功能描述 可操作性 复位值 位名 位号 P0口中断被挂起,则该位置1 CC2530中断入口地址(也称为中断向量)在哪个头文件中定义? 这样书写的函数叫什么类型的函数? Copyright:柯宗武
文档评论(0)