主程序:
/****************************************************************************
* 文件:main.c
* 功能:使用外部中断1进行LED控制,每当有一次中断时,即取反LED,以便指示中断输入
****************************************************************************/
#include "config.h"
#define LEDCON 0x00000800
/****************************************************************************
* 名称:DelayNS()
* 功能:长软件延时
****************************************************************************/
void __irq IRQ_Eint1(void)
{ uint32 i;
i=VICIRQStatus; //读出VICIRQStatus的值
i=IO0SET; //读出当前LED2控制值
if((i&LEDCON)==0) //控制LED2控制值
{ IO0SET=LEDCON;
}
else
{ IO0CLR=LEDCON;
}
while((EXTINT&0x02)!=0) //等待外部中断信号恢复为高电平
{ EXTINT=0x02; //清除EINT1中断标志
}
VICVectAddr=0x00;
}
/****************************************************************************
* 名称:main()
* 功能:初始化外部中断1及I/O连接等
****************************************************************************/
int main(void)
{
PINSEL0=0x20000000; //设置I/O端口工作模式,P0.14设置为EINT1
PINSEL1=0x00000000;
IO0DIR=LEDCON; //设置LED控制口为输出,其它I/O为输入
IO0SET=LEDCON;
IO0CLR=LEDCON;
VICIntSelect=0;
VICIntEnable=0x00008000;
VICVectCntl1=0x2F;
VICVectAddr1=(int)IRQ_Eint1;
EXTINT=0x07;
while(1);
}
关键字:ARM7入门 外部中断
引用地址:
ARM7入门7,外部中断
推荐阅读最新更新时间:2024-03-16 15:18
STM32F4 EXTI外部中断(二)
一. 外部中断结构体 1. EXTI_InitTypeDef 结构体 2. 中断线标号 2. 例 配置PB14为外部中断 void exti_init(void) { //配置GPIOB_14引脚为输入 //使能GPIO时钟 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE); //定义GPIO_InitTypeDef 结构体 GPIO_InitTypeDef GPIO_InitStructure; //选择引脚 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14; //配置工作模式为
[单片机]
利用外部中断实现模拟串口数据的收发
这一节注意四个知识点: 第一个:如何利用外部中断实现模拟串口数据的收发。 第二个:在退出外部中断函数时,必须通过软件把外部中断标志位IE0清零,否则在接收到的数据包最后面会多收到一个无效的字节0xFF。 第三个:实际做项目的时候,尽量利用单片机内部自带的集成串口,不到万不得已尽量不要用自制的模拟串口,如果非要用本节讲的模拟串口,那么一次接收的数据包不要太长,尽可能越短越好,因为自己做的模拟串口在稳定性上肯定比不上单片机自带的串口。这种模拟串口在批量生产时容易因为晶振的误差,以及外界各地温度的温差而影响产品的一致性,是有隐患的。 第四个:用模拟串口时,尽量不要选用动态数码管的显示方案,因为单片机在收发串口数据时,只能专心
[模拟电子]
LPC1788外部中断的例子,基于Keil MDK
网上LPC1700外部中断的例子都是ADS的,我来贡献个Keil MDK的吧 以外部中断0(EINT0)为例,低电平触发中断 关键代码如下: //头文件为MDK 4.23带的 LPC177x_8x.h ,代码中所用宏均在其中可以找到定义 #include LPC177x_8x.h LPC_IOCON- P2_10 = (LPC_IOCON- P2_10 & ~0x07) | 1; //把P2.10设为EINT0 LPC_SC- EXTMODE &= ~0x01; //中断为电平触发 LPC_SC- EXTPOLAR &- ~0x01; //低电平触发中断 LPC_SC- EXTINT |=
[单片机]
STM32学习—外部中断EXTI
外部中断配置步骤 要使用外部中断我们就需要先配置它,通常都需经过这几步: (EXTI相关库函数在stm32f10x_exti.c和stm32f10x_exti.h文件中) (1)使能IO口时钟,配置IO口模式为输入 (2)开启 AFIO 时钟,设置 IO 口与中断线的映射关系 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource); GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_
[单片机]
51单片机~定时器和外部中断(各个位控制作用详解)
(一)中断 (二)定时器,计数器中断 TL0低八位先进行存储,达到0XF,向上进一,直到高低八位都满时就可以产生中断或者控制TF0口。 (1). TMOD低四位控制T0,高四位控制T1。 GATE:(门控位) (2)控制寄存器TCON:(低四位控制外部中断,高四位控制计数器启动和中断申请) (3)定时器的四种工作方式: 定时器开启工作原理: 四种工作方式:(机器周期(脉冲)和T0引脚来绝定电路触发) 区别在于TH0和TL0的位数和输出) 常用1和2 1. 2.用于比较精确的脉冲信号发射器: 3. 程序化步奏: 计算:初值==2^n-N(公式要根据你使用那种方式0.1
[单片机]
初学stm32-外部中断(EXTI按键中断)
外部中断概述 STM32F4的每个IO都可以作为外部中断输入。 STM32F4的中断控制器支持23个外部中断/事件请求: EXTI线0~15:对应外部IO口的输入中断。 EXTI线16:连接到PVD输出。 EXTI线17:连接到RTC闹钟事件。 EXTI线18:连接到USB OTG FS唤醒事件。 EXTI线19:连接到以太网唤醒事件。 EXTI线20:连接到USB OTG HS(在FS中配置)唤醒事件。 EXTI线21:连接到RTC入侵和时间戳事件。 EXTI线22:连接到RTC唤醒事件。 对于每个外部中断线可以独立的配置触发方式(上升沿,下降沿或者双边沿触发),触发/屏蔽,专用的状态位。 STM32F4供IO使用的
[单片机]
MSP430G2553(一)IO外部中断说明
这一篇文章将说明MSP430G2553的IO中断配置,整个P1的IO都可以配置IO中断,但中断处理函数只有一个,MSP430和大多数MCU一样提供上升沿、下降沿选择。 在Launchpad上有按键S2,接在P1.3口,当按下后P1.3将接入高电平,从而触发中断。 所有寄存器的具体名称和地址,可以查看M430G2553 datasheet 第 21页中对于P1的寄存器定义 在实例代码中,配置了P1.3和P1.6的LED灯,当按下P1.3的按键产生中断,LED灯将切换点亮 1.按键的中断配置 要配置按键中断,需要先设置P1.3口为输入,并且设置上拉电阻以保障稳定性, P1DIR &= ~BIT3;//设置P1.
[单片机]
带定位引擎的射频芯片CC2431
【提要】CC2431是Chipcon公司继CC2430之后推出的,带硬件定位引擎的符合ZigBee/IEEE 802.15.4技术的2.4 GHz射频系统,适合于各种ZigBee相关的无线网络节点,包括调谐器、路由器和终端设备等。本文介绍了CC2431芯片的主要特点和应用领域,重点介绍了CC2431的定位引擎及其使用方法。 CC2431是TI公司推出的带硬件定位引擎的片上系统(SoC)解决方案,能够满足低功耗ZigBee/IEEE 802.15.4无线传感器网络的应用需要。CC2431定位引擎基于RSSI技术,根据接收信号强度与已知参考节点位置准确计算出有关节点位置,然后将位置信息发送给接收端。相比于集中型定位系统,RS
[安防电子]