VIC中断控制

发布者:学思者最新更新时间:2016-11-01 来源: eefocus关键字:VIC  中断控制 手机看文章 扫描二维码
随时随地手机看文章
ARM7比较难理解和控制的就是中断控制,把自己找的一些资料写上来。

1、 快速中断FIQ

⑴在主程序中:

①     在VICIntSelect中将中断分配为FIQ中断;

②     在VICIntEnable中使能外设中断。

    ⑵中断服务程序中:

①     中断处理;

②     清除相应的中断标志,以响应下一次中断。

2、 向量IRQ

⑴主程序

①     在VICIntSelect中将中断分配为IRQ中断;

②     在VICVectCntlx中分配中断通道(优先级);

③     在VICVectAddrx中设置中断服务程序的地址;

④     通过VICIntEnable使能外设中断。

   ⑵中断服务程序

①     中断处理;

②     清除相应的中断标志,以响应下一次中断;

③     对VICVectAddr寄存器执行写操作(通常为0x00),结束向量中断,以更新硬件优先级。

3、 非向量IRQ

   ⑴主程序

①      在VICDefVectAddr中设置中断服务程序的地址;

②       通过VICIntEnable使能外设中断。

     ⑵中断服务程序

①中断处理;

②清除相应的中断标志,以响应下一次中断;

③对VICVectAddr寄存器执行写操作(通常为0x00),结束向量中断,以更新硬件优先级。

初始化

1,设置IRQ/FIQ中断;

2,若是IRQ中断,则可以设置为向量中断并分配中断优先级,否则为非向量IRQ;

3,然后可以设置中断允许

4,以及向量中断对应地址或非向量中断默认地址

IRQ中断时

1,读取向量地址寄存器,跳转到相应代码

2,退出中断时,对向量地址寄存器写0,通知VIC中断结束

当发生中断时,处理器将会切换处理器模式,同时相关的寄器也将会映射


 

LPC2104的中断管理是由向量中断控制器(VIC)操作的,向量中断控制器具有32个中断请求输入(32个中断通道,但LPC210X只使用了17个通道,即0~16),可将它们设置为FIQ,向量IRQ和非向量IRQ,通过编程不同外设的向量IRQ中断优先级,可实现动态分配调整。非向量IRQ中断优先级最低

相关寄在存器解释如下:

检查中断状态或中断通道

VICIRQStatus:IRQ状态请求标志。置1的位表示对应的通道号中断有效(此通道设置为IRQ,并已使能。只读。

VICFIQStatus:FIQ状态请求标志。同上。

VICRawIntr:所有中断的状态。32个通道的中断请求/软件中断状态(不管是否使能)。只读。

中断通道IRQ或FIQ选择

VICIntSelect:中断选择,即选择IRQ或FIQ中断。置1时表示对应通道设置为FIQ。读/写

中断使能及软件中断

VICIntEnable:中断使能。置1时表示对应通道使能,否则为禁能。读/写。

VICIntEnclr:中断使能清零。置1时清除对应通道使能标志。只写。

VICSoftInt:软件中断设置。置1时表示对应通道产生中断。只能通过VICSoftClear清除软件中断标志。读/写

VICSoftClear:软件中断清零。清除相应通道的软件中断标志。只写。

IRQ中断向量

VICVectAddr:向量中断地址。当发生向量IRQ时,此寄存器是最高优先级IRQ通道的向量地址值。读/写。

IRQ向量原地址

VICDefVectAddr:非向量中断的向量地址。当发生非向量中断时,即将此寄存器值复制到VICVectAddr中。读/写

VICVectAddr0~15:优先级0~15向量中断的向量地址。当有对应优先级向量IRQ中断时,将会把保存的值复制到VICVectAddr中。读/写

向量IRQ中断优先级设置

VICVectCntl0~15:向量控制寄存器0~15,即向量优先级寄存器。可以把各个IRQ中断通道分配到不同的向量控制寄存器中,使其成为向量中断,并具有一定的优先级。读/写。

设置向量中断,即是把中断通道分配到向量IRQ中断优先级寄存器中,当然对应通道必须设置为IRQ中断类型,而不能为FIQ中断类型。在VIC中,FIQ无中断优先级,也无向量地址,一般只分配一个通道为FIQ中断。VICVectCntl0~15寄存器的D5位是控制是否使能此优先级的向量功能,若复位为0,则关闭其向量功能,此向量IRQ变为非向量IRQ。

杂项

VICProtection:保护使能,若最低位为1,则只允许在特权模式下访问VIC寄存器。

关键字:VIC  中断控制 引用地址:VIC中断控制

上一篇:ARM7入门1,跑马灯实验
下一篇:ARM7入门2,Hello world程序

推荐阅读最新更新时间:2024-03-16 15:18

STM8-利用外部中断编写两个按键控制灯的亮灭
目的:熟悉外部中断的使用。(两个按键控制灯的亮灭) #include stm8s.h #include stm8s_exti.h #define uchar unsigned char #define uint unsigned int #define ulong unsigned long void delay(uint i) { while(i--); } void main() { GPIO_DeInit(GPIOD); GPIO_Init(GPIOD, GPIO_PIN_0, GPIO_MODE_OUT_PP_LOW_FAST);//输出 GPIO_Init(GPIOD, GPIO_PIN_1, GP
[单片机]
一个键中断控制八个io口
#include main() { P2=0x55;//P1口初始值 EA=1;//全局中断开 EX0=1;//外部中断0开 IT0=1;//边沿触发 while(1) { } } void ISR_Key(void) interrupt 0 { P2=~P2;//k3按下触发一次,P1取反一次 为什么是k3?
[单片机]
STM8 中断控制器ITC
简介 中断控制器提供如下功能: ● 硬件中断的管理 ─ 所有I/O 引脚都具有外部中断能力,每一个端口都有独立的中断向量以及独立的标志。 ─ 外设中断能力 ● 软件中断的管理(TRAP) ● 具有灵活的优先级和中断等级管理,支持可嵌套的或同级中断管理: 多达4个软件可编程的嵌套等级 最多有32个中断向量,其入口地址由硬件固定 2 不可屏蔽的事件: RESET, TRAP 1 个不可屏蔽的最高优先级的硬件中断 (TLI) 基于如下资源的中断管理: ● 位I1 和I0 位于CPU的条件代码寄存器(CCR) ● 软件优先级寄存器 (ITC_SPRx) ● 复位向量地址0x00 800
[单片机]
STM8 <font color='red'>中断</font><font color='red'>控制</font>器ITC
1.10.5_I2C_I2C控制器编程_中断_P
中断程序是I2C控制器核心和核心,ACK的确认就是在中断程序中完成的。 中断的处理流程时通过2440的相关流程图和AT24cxx的数据结构来完成的。 下图是2440 IIC控制器处于Transmitter模式的流程图和AT24cxx写数据的结构体图。 由发送函数开启发送。 对于第一个中断,发送的是地址,如果没有收到ACK,说明设备不存在,则直接停止传输。如果有数据,则正常进行写操作,直到数据都写完。 读数据的流程图也类似。 同样是从一个读函数开启。 然后在中断函数中处理,第一个也是设备地址,没有ack则表示无设备,需要停止传输,如果有,则恢复IIC传输。 不是第一次中断,那么表示收到一个新数据,
[单片机]
1.10.5_I2C_I2C<font color='red'>控制</font>器编程_<font color='red'>中断</font>_P
《Cortex-M0权威指南》之体系结构---嵌套中断控制器(NVIC)
  为了管理中断请求的优先级并处理其他异常,Cortex-M0处理器内置了嵌套中断控制器(NVIC)。NVIC的一些可编程控制器控制着中断管理功能,这些寄存器被映射到系统地址空间里,它们所处的区域被称为系统控制空间(SCS)。   NVIC有以下特性: 灵活的中断管理; 支持嵌套中断; 向量化的异常入口 中断屏蔽 灵活的中断管理   Cortex-M0处理器中,每一个外部中断都可以被使能或者禁止,并且可以被设置为挂起状态或者清除状态。处理器的中断可以是信号级的(在中断服务程序清除中断请求以前,外设的请求会一直保持),也可以是脉冲形式的(最小一个始终周期),这样中断控制器就可以处理任何中断源。 支持嵌
[单片机]
《Cortex-M0权威指南》之体系结构---嵌套<font color='red'>中断</font><font color='red'>控制</font>器(NVIC)
8051中断控制寄存器
1.定时器/计数器控制寄存器TCON 定时器/计数器控制寄存器TCON的地址为88H,可以位读写,其功能如下: TCON.7 TCON.6 TCON.5 TCON.4 TCON.3 TCON.2 TCON.1 TCON.0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 ⑴TF1是定时器T1的溢出申请位。定时器T1被允许计数以后,从初值开始加1计数,当产生溢出时置TF1=1,向CPU请求中断。到CPU响应该中断后才由硬件清0,也可以由查询程序清0。 ⑵TF0是定时器T0的溢出申请位。TF0实际上是T0中断触发器的一个输出端。 ⑶IE1是外部中断INT1请求标志
[单片机]
s3c2440中断控制器操作
一、ARM中断体系结构 arm有7中异常工作模式 用户模式、快中断模式、管理模式、数据访问终止模式、中断模式、系统模式、未定义指令终止模式。 几种模式有什么不同呢, 1、不同的寄存器 2、不同的权限 3、触发条件 对于不同的寄存器,ARM920T有31个通用的32位寄存器和6个程序状态寄存器。这37个寄存器分为7组,进入某个工作模式时就使用他那组的寄存器。有些寄存器,不同的工作模式下有他的副本,当切换到另一个工作模式时,那个工作模式的寄存器副本将被使用:这些寄存器被称为备份寄存器(图中灰色部分的寄存器) 在ARM状态下,每种工作模式都有16个通用的寄存器和一个(或两个,这取决于不同的工作模式)程序状态寄存器。图中R
[单片机]
s3c2440<font color='red'>中断</font><font color='red'>控制</font>器操作
Cortex M3 NVIC与中断控制
一、NVIC概览 ——嵌套中断向量表控制器 NVIC 的寄存器以存储器映射的方式来访问,除了包含控制寄存器和中断处理的控制逻辑之外, NVIC 还包含了 MPU、 SysTick 定时器以及调试控制相关的寄存器。NVIC 共支持 1 至 240 个外部中断输入(通常外部中断写作 IRQs)。具体的数值由芯片厂商在设计芯片时决定。此外, NVIC 还支持一个“永垂不朽”的不可屏蔽中断( NMI)输入。NVIC 的访问地址是 0xE000_E000。所有 NVIC 的中断控制/状态寄存器都只能在特权级下访问。不过有一个例外——软件触发中断寄存器可以在用户级下访问以产生软件中断。所有的中断控制/状态寄存器均可按字/半字/字节的方式访问
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved