《微机原理与嵌入式系统基础》课件第7章.pptVIP

《微机原理与嵌入式系统基础》课件第7章.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

7.6.4端口寄存器与操作

1.VIC寄存器

VIC中有43个相关寄存器,详见表7-31。用户通过对这些寄存器的编程与访问,可对ARM微控制器的各个中断源分别进行屏蔽控制、中断分类控制、中断优先级控制、中断向量传递、状态查询等。参数设置类寄存器2.VIC各寄存器详述

VIC寄存器按功能分为控制类寄存器、参数设置类寄存器和状态类寄存器。

1)控制类寄存器

该类寄存器共计6个,用于VIC工作控制,如将各个中断源分配到FIQ类中断或IRQ类中断,屏蔽哪些中断源,软件发出中断,软件中断清除和VIC寄存器访问控制等。寄存器列表参见表7-31。(1)中断选择寄存器(VICIntSelect—0xFFFFF00C)。

VICIntSelect寄存器按位配置对应VIC通道号(VIC_CH#)中断源的中断类型。该寄存器有32比特,分别用于将最多32个中断源分别配置为FIQ类中断或IRQ类中断。VICIntSelect[x]?位设置为“1”,对应中断通道号(即VIC_CH=x)的中断源被配置为FIQ类中断;若设置为“0”,则被配置为IRQ类中断。各中断源的VIC通道号(VIC_CH#)参见表7-29。VICIntSelect寄存器功能描述见表7-32。操作示例(设置EINT0、Timer0、UART0为IRQ中断,Timer1为FIQ中断):#defineEINT0_VIC_CH14;/*外中断0的VIC_CH=14*/#defineTIMER0_VIC_CH4;/*Timer0的VIC_CH=4*/#defineUART0_VIC_CH6;/*UART0的VIC_CH=6*/#defineTIMER1_VIC_CH5;/*Timer1的VIC_CH=5*/VICIntSelect=((~1EINT0_VIC_CH)(~1TIMER0_VIC_CH)(~1UART0_VIC_CH));

/*设置EINT0、Timer0、UART0为IRQ*/

VICIntSelect|=(1TIMER1_VIC_CH);

/*设置Timer1为FIQ*/

(2)中断使能寄存器(VICIntEnable—0xFFFFF010)。

VICIntEnable寄存器按位控制对应VIC通道号(VIC_CH#)中断源的使能。该寄存器有32比特,分别用于最多32个中断源的中断使能/屏蔽控制。向VICIntEnable[x]写入“1”,对应通道号(VIC_CH=x)的中断源被使能,即允许该对应的中断源可以向处理器发送中断请求。该寄存器各位分别用于使能控制各个通道的中断源,与中断源的FIQ/IRQ属性无关。各中断源的VIC通道号(VIC_CH#)参见表7-29。VICIntEnable寄存器功能描述见表7-33。

注意:向该寄存器各位写“1”将允许对应的中断源向处理器发出中断申请,写“0”操作无效(相应位不能清0)。按VIC通道号(VIC_CH#)指定中断源的屏蔽功能,通过向VICIntEnClr寄存器相应位写“1”来完成。操作示例(设置使能EINT0、Timer0、UART0、Timer1中断):

#defineEINT0_VIC_CH14; /*外中断0的VIC_CH=14*/

#defineTIMER0_VIC_CH4;/*Timer0的VIC_CH=4*/

#defineUART0_VIC_CH6;/*UART0的VIC_CH=6*/

#defineTIMER1_VIC_CH5;/*Timer1的VIC_CH=5*/

VICIntEnable|=((1EINT0_VIC_CH)|(1TIMER0_VIC_CH)

|(1UART0_VIC_CH)|(1TIMER1_VIC_CH));

/*设置允许EINT0、Timer0、UART0、Timer1中断申请*/(3)中断使能清除寄存器(VICIntEnClr—0xFFFFF014,WriteOnlyRegister)。

VICIntEnClr寄存器按位控制对应VIC通道号(VIC_CH#)中断源的屏蔽。该寄存器有32比特,分别用于最多32个中断源的中断使能/屏蔽控制。软件向VICIntEnClr寄存器写入中断屏蔽控制字,中断屏蔽控制字中位数据是“1”的VICIntEnable寄存器对应位被清0,VICIntEnable寄

文档评论(0)

酱酱 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档