精华内容
下载资源
问答
  •  EXTINT是外部中断标志寄存器。当一个管脚选择使用外部中断功能时,对应在EXTMODE和EXTPOLAR寄存器中得位选择得电平或边沿将置位EXTINT寄存器的中断标志。这样来向VIC提出中断请求,如果管脚中断使能,则产生中断。...
    LPC21144个外部中断,分别为EINT0EINT1EINT2EINT3,具有4个相关得寄存器。外部中断输入可以用于将处理器从掉电模式唤醒。

     

    EXTINT外部中断标志寄存器。当一个管脚选择使用外部中断功能时,对应在EXTMODEEXTPOLAR寄存器中得位选择得电平或边沿将置位EXTINT寄存器的中断标志。这样来向VIC提出中断请求,如果管脚中断使能,则产生中断。低4位与外部中断引脚EINT3EINT2EINT1EINT0对应,为1时表示外部中断有效。可以通过软件对其相应位写入1清零标志位。电平激活方式下,该方式只有在管脚处于无效状态时才有效。一旦EINT0EINT3中的一位被置位并开始执行相应代码时,该位必须清零。否则EINT刚触发得事件以后将不会被识别。

    电平激活方式下,如果管脚的EINT功能被选用且管脚处于有效状态时,该位置位;边沿激活方式下,如果管脚的EINT功能被选用且管脚上出现所选边沿时,该位置位。

     

    EXTWAKE中断唤醒寄存器EXTWAKE寄存器中的使能位允许外部中断和其他源将处理器从掉电模式中唤醒。相应的EINTn功能必须映射到管脚才能实现掉电唤醒。这样做的好处是允许外部中断输入将处理器从掉电唤醒,但不产生中断;或者在掉电模式下使能中断而不会将处理器唤醒。[3:0]=EXTWAKE3EXTWAKE0,为1时允许唤醒。

     

    EXTMODE外部中断模式寄存器。该寄存器中的位用来选择EINTn的引脚是电平还是边沿激活。只有选择用作EINT功能,并且已通过VICIntEnable寄存器使能得管脚才能产生外部中断功能的中断。[3:0]=EXTMODE3XTMODE0,0时使用电平激活,为1时使用边沿激活。

     

    EXTPOLAR外部中断极性寄存器。在电平激活方式下,EXTPOLAR寄存器的位选择相应管脚是高电平还是低电平有效。在边沿激活方式下,选择是上升沿还是下降沿有效。[3:0]=EXTPOLAR3EXTPOLAR1,为1时外部中断是高电平或上升沿有效;为0时外部中断是低电平或下降沿有效。

    展开全文
  • 外部中断

    2020-03-01 17:28:35
    中断标志寄存器(TCON)三.外部中断配置与程序举例 一.外部中断输入引脚 外部中断0(INT0):P3.2口的附加功能 外部中断1(INT1):P3.3口的附加功能 当引脚上出现有效的中断信号时,就有中断标志置1,向CPU申请...

    一.外部中断输入引脚

    在这里插入图片描述
    外部中断0(INT0):P3.2口的附加功能
    外部中断1(INT1):P3.3口的附加功能

    当引脚上出现有效的中断信号时,就有中断标志置1,向CPU申请中断。

    二.外部中断相关寄存器

    1.中断允许寄存器(IE)

    在这里插入图片描述
    EA:CPU开启中断总允许位。EA=1时,才能启动中断功能。
    EX0:外部中断0允许位。EX0=1时,外部中断1才能启动。下同。
    EX1:外部中断1允许位。

    2.中断标志寄存器(TCON)

    在这里插入图片描述
    IT0/IT1:控制外部中断的触发条件。0:低电平有效 1:下降沿有效
    一般来说,设置成下降沿有效(1)会比较多。

    IE0/IE1:外部中断标志位。当外部中断触发时,标志位变成1,向CPU申请中断。申请中断完成后,标志位重新置0.

    三.外部中断配置与程序举例

    依前,还是要设置基本的三个函数

    中断配置函数:以使用外部中断0为例
    void Int0Init0(){
    EA=1;
    EX0=1;
    IT0=1;
    }

    主函数:

    void main{
    IntInit0();
    While(1);
    }

    中断服务函数
    Void Int0() interrupt 0 //中断号为0
    {
    所要执行的程序动作
    }

    举例:使用外部中断,利用独立按键控制LED灯的亮灭(按一下会开,再按就关)

    分析:涉及的外部资源有独立按键和LED灯。其中,独立按键K3与P3.2口相连,故可以用K3作为外部中断输入。当按下按键后,led1(P2^1)就会取反,从而有亮-灭-亮的效果。

    #include "reg52.h"
    #include <stdio.h>
    
    #define u16 unsigned int
    
     sbit k3 = P3^2;   //独立按键K3与外部中断引脚P3.2相连
     sbit led = P2^1;  //定义LED模块的1号灯为led
    
     void dalay()
     {
     	u16 i;
    	for(i=0;i==1000;i++);  //延时函数,用于独立按键消抖
     }
     
     void Init_INT0()
     {
     	EA=1;
    	EX0=1;
    	IT0=1;  //设置外部中断为下降沿有效
    
     }
    
     void main()
     {
     	Init_INT0();   //主程序中需要有中断配置
    	while(1);     //程序在此处停止,等待中断发生
     }
    
     void INIT0() interrupt 0
     {
       void delay();
       if(k3==0)
          	led=~led;  //按下按键时,led1取反
       
     }
    
    展开全文
  • 无论是哪款单片机应该都有对应的中断的功能,中断在嵌入式系统的地位毋庸置疑。LPC1768微处理器包括4个外部中断,分别是EINT0、EINT1、EINT2、EINT3...外部中断标志寄存器 设置或查看中断标志 0x00 EXTMODE
  • 0x1、DF(Direction) FLAG寄存器的第10位。方向标志位 用于串操作指令中,控制地址变化的方向。 DF = 0,存储器地址自动增加 ...用于外部可屏蔽中断是否可以被外部处理器响应。 IF = 1,允许中断 IF = 0,禁止中断

    0x1、DF(Direction)

    FLAG寄存器的第10位。方向标志位
    用于串操作指令中,控制地址变化的方向。
    DF = 0,存储器地址自动增加
    DF = 1,存储器地址自动减少
    CLD,用来复位DF的,执行后DF = 0 (Clear DF)
    STD,用来设置DF的,执行后DF = 1 (Set DF)

    0x2、IF(Interrupt - enable Flag)

    FLAG寄存器的第九位。中断允许标志
    用于外部可屏蔽中断是否可以被外部处理器响应。
    IF = 1,允许中断
    IF = 0,禁止中断
    CLI,用于复位IF的,执行后IF = 0(Clear IF)
    STI,用于设置IF的,执行后IF = 1(Set IF)

    0x3、TF(Trap Flag)

    TF = 0,处理器正常工作
    TF = 1,处理器单歩执行指令
    单歩执行指令:处理器每执行结束后,便产生编号为1的内部中断
    这种内部中断称为单歩中断,所以TF也称为单歩标志。
    利用单歩中断,可对程序进行逐条指令的调试,这种调试程序的方法就是单歩调试

    展开全文
  •  STM8L 系列单片机是 ST公司推出的低功耗单片机,与STM8S系列相比功耗降低了很多,但内部结构也...在外部中断中这一点很不同, STM8S自动清除外部中断,而STM8L是需要软件清除, 清除标志位的寄存器根据设置而不同...

      

      STM8L 系列单片机是 ST公司推出的低功耗单片机,与STM8S系列相比功耗降低了很多,但内部结构也删减了很多,使用时一定要仔细阅读手册。  这是第一次使用STM8,实现功能不是很复杂就没想研究库函数,准备直接控制寄存器操作,没想到本人 因为中断问题纠结了大半天。

    在外部中断中这一点很不同, STM8S自动清除外部中断,而STM8L是需要软件清除, 清除标志位的寄存器根据设置而不同,下面有说明。

     

    下面以STM8L外部中断 PB1为例 说明外部中断 寄存器操作

    设置外部中断有下面几步:

    第一步、设置IO口为中断输入 通过设置PB_DDR |= 0X00; PB_CR1 |= 0X02; PB_CR2 |= 0X02;

    第二步、设置中断触发方式(00: Falling edge and low level;01: Rising edge only;10: Falling edge only;11: Rising and falling edge

    第三步、更改中断向量表 (stm8_interrupt_vector.c 文件中)

    第四步、编写中断处理函数,记住在函数里面清除中断

     


     

     第一步、设置IO口为中断输入

       PB_DDR |= 0X00; // 输入

     PB_CR1 |= 0X02; // 0000_0010  

     PB_CR2 |= 0X02; // 0000_0010   CR1与CR2结合确定为 上拉外部中断输入

    第二步、设置中断触发方式 STM8L中 PB 与 PD 端口比较特殊可以有两种触发模式

     EXTI_CONF= 0x00;

      这两种触发模式通过寄存器 EXTI_CONF 进行设置 

      第一种方式 与A,C port一样通过下面两个寄存器设置触发模式  设置 寄存器EXTI_CONF[0]为0 ,表示Port B[3:0] 使用第一种方式(我在此命名为普通方式)

      EXTI_CR1 寄存器设置 Port A, B, C and/or D external interrupts  的 3、2、1、0引脚

      EXTI_CR2 寄存器设置 Port A, B, C and/or D external interrupts  的 7、6、5、4引脚

      第二种方式 通过EXTI_CR3寄存器设置触发模式EXTI_CONF[0]为1 ,表示Port B[3:0] 使用第二种方式(我在此命名为特殊方式)

      EXTI_CR3 寄存器的 [3:2] 位 设置 端口D 的触发模式 

      EXTI_CR3 寄存器的 [1:0] 位 设置 端口B 的触发模式

    第三步、更改中断向量表 

      {0x82, KEY_Interrupt}, /* irq9  */

      PB1普通模式中断向量号为9 ,其中 KEY_Interrupt 可以根据实际命名, 只要和后面写的中断函数名一致就可以。

      为什么选择为9 看下面的图片就知道了。

    第四步、编写中断处理函数

      @far @interrupt void KEY_Interrupt(void)
      {
        LED1 = !LED1;
        //EXTI_SR2 = 0x01; // 如果设置为 特殊模式  通过此寄存器 清除 中断标志位
        EXTI_SR1 |=0x02; // 如果设置为 普通模式 通过此寄存器 清除 中断标志位

      } 

    在这一步骤中有两点 说明:

    1、如果中断执行函数不想在 stm8_interrupt_vector.c 文件中编写,需要在 stm8_interrupt_vector.c  文件中添加这样一个函数

      @far @interrupt void KEY_Interrupt(void);

    2、 EXTI_SR2 = 0x01; // 如果设置为 特殊模式  通过此寄存器 清除 中断标志位
      EXTI_SR1 |=0x02; // 如果设置为 普通模式 通过此寄存器 清除 中断标志位


     

    中断向量等级: 

    通过下面的第一个表格 可以知道 如果我们用普通中断模式 端口B1的中断 属于 EXTI1 (如果是PB2 属于EXTI2),  特殊模式 端口B的中断属于 EXTIB and EXTID,

     

     

    知道这点  后我们结合手册中的中断向量 表就知道 我们应该在哪个位置写中断 入口函数名了。

     

     

     


     

                 

       希望可以对 大家有帮助 --------  ForeverLongo

              

     

     

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • 也就是说,单片机把每个机器周期的S5P2采样到的外部中断源口线的电平逻辑直接赋值到中断标志寄存器。标志寄存器对于请求信号来说是透明的。这样当中断请求被阻塞而没有得到及时响应时,将被丢失。换句话说,要
  • 在51单片机中,有2路外部中断输入INT0(P3.2)和INT1(P3.3);2路中断触发信号:低电平触发和下降沿触发。 中断允许寄存器IE(0:禁止中断;1:使能中断) ...IE1:外部中断1请求标志位 IT1:外部中断1触发方式控
  • 2.TCON的中断标志 3.中断优先级 4.中断源 5.中断响应条件(同时满足) (1)中断源有中断请求 (2)此中断允许位置1,打开中断控制(IE寄存器) (3)CPU打开总中断(EA=1) 二.外部中断 1.外部中断请求 见中断源,...
  • stm8s外部中断

    千次阅读 2018-03-17 22:31:13
    另外,stm8s系列外部中断没有标志位。以PC1下降沿触发为例,配置如下:asm("sim");//关总中断EXTI_CR1_PCIS = 2;//仅下降沿触发PC_DDR_DDR1 = 0;//io方向:输入PC_CR1_C11=0;//因为D...
  • [ ] 中断允许寄存器IE 1.EA:cpu总中断允许控制位。EA=1,cpu开放中断。 2.ET0/ET1:定时器T0和定时器T1溢出中断允许位。ET0/ET1=1;允许中断。 3.EX0/EX1:外部中断0和外部中断1中断允许位...IE0:外部中断0请求标志,IE...
  • 外部中断0和1外部中断原理编程原理(外部中断0)代码实现 外部中断原理 外部中断0:(P3.2)可由IT0(TCON.0)选择其为低电平有效还是下降沿有效。当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)置...
  • 51单片机的外部中断有两种触发方式可选:电平触发和边沿触发。选择电平触发时,单片机在每个机器周期检查中断源...但应用时需要特别注意的几点:1) 电平触发方式时,中断标志寄存器不锁存中断请求信号。也就是说,单...
  • IE0和IE1是中断标志位,为1的时候,向CPU发送请求中断 TF0和TF1是溢出中断请求位(定时器溢出便置1,发送请求中断) RI和TI是串行口中断请求标志位(前收后发,完成置1,发送中断) (PS:以上三行,中断请求发送由...
  • CC2430基础实验——外部中断

    千次阅读 2010-09-17 11:00:00
    外部中断实验是使用两个按键来翻转LED状态,但这里两个按键不是做...P0IFG为P1口中断标志寄存器;IEN1为中断使能寄存器1。 这个实验是到目前为止我改动最大的一个实验了,我想主要还是这个基础实验以前不是跑在2430
  • 外部中断实验是使用两个按键来翻转LED状态,但这里两个按键,一是做键盘用,二是产生中断触发信号。 实验共用到P1、P1/P0DIR、P1/P0SEL、P1/P0INP、PICTL、IEN1和P0IFG几个个寄存器。其中前几个的作用前面的文章里...
  • 51单片机的外部中断有两种模式:电平触发模式和跳变沿触发模式  第一,选择电平触发时,单片机在每个机器周期检查中断源口线,检测到低电平,即置位中断请求标志,向CPU请求... 电平触发模式时,中断标志寄存器不锁
  • stm32(八)外部中断

    2019-09-14 14:44:30
    中断源:串口接收完成之后,状态寄存器SR中有一个标志位置1 中断源:边沿(上升沿、下降沿) 外部中断最常用与按键处理,按键动作产生边沿信号,该信号可以出发芯片产生一个中断。 学习外部...
  • 51单片机的外部中断有两种触发方式可选:电平触发和边沿触发。选择电平触发时,单片机在每个机器周期检查中断...但应用时需要特别注意的几点:1)电平触发方式时,中断标志寄存器不锁存中断请求信号。也就是说,单片...
  • 为什么要在中断服务函数中清除中断标志位? 为什么配置中断功能时要在APB2中使能AFIO相关功能? 与AFIO 相关的寄存器 重映射与端口复用的区别 代码示例 Main.c LED.c LED.h KEY.c KEY.h EXTI.c EXTI.h
  • 51单片机的外部中断有两种触发方式可选:电平触发和边沿触发。选择电平触发时,单片机在每个机器周期检查中断源口线,检测到低电平,即置位...但应用时需要特别注意的几点:1) 电平触发方式时,中断标志寄存器不锁存
  • stm32的外部中断触发方式只有上升沿或者下降沿触发,若配置成外部中断模式,当RX_DR中断触发时IRQ引脚会产生一个下降沿,stm32进入中断函数执行数据读取函数,读取完之后清除状态寄存器标志,IRQ引脚重新变为高电平...
  • zigbee基础应用(三)外部中断 1.寄存器篇 按键S1中断控制初始化: P0IEN |= 0x2; // P0.1 设置为中断方式 1:中断使能 PICTL |= 0x2; //下降沿触发 IEN1 |= 0x20; //允许P0口中断; P0IFG = 0x00; //初始化...
  • TZ** 是外部触发标志寄存器TZCLR外部触发清零寄存器这两个理解起来比较简单,所以不再做过多说明,就是中断的时候查询标志位,然后中断发生了就把标志位清零即可! TZFRC 外部触发强制寄存器 TZ寄存器配置代码 ...
  • 1、GPIO外部中断 ESP8266技术参考手册,2.3.3小节有非常详细的步骤。 1.1 、配置IO口中断的步骤 将IO口配置为GPIO模式,并设置为输入。 禁止所有的IO口中断 注册中断处理函数 配置IO口的中断触发方式 使能所有IO...
  • stm32学习笔记---中断与事件的区别以及外部中断

    千次阅读 多人点赞 2018-08-28 20:23:58
    图中的蓝色虚线箭头,标出了外部中断信号的传输路径,首先外部信号从编号1的芯片管脚进入,经过编号2的边沿检测电路,通过编号3的或门进入中断挂起请求寄存器,最后经过编号4的与门输出到NVIC中断检测电路,这个边沿检测...
  • stm32外部中断与外部事件区别

    千次阅读 2012-10-25 12:29:18
    图中的蓝色虚线箭头, 标出了外部中断信号的传输路径, 首先外部信 号从编号1的芯片管脚进入,经过编号2的边沿检测电路,通过编号3 的或门进入中断“挂起请求寄存器”,最后经过编号4的与门输出到 NVIC 中断控制...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 179
精华内容 71
关键字:

外部中断标志寄存器