* 文件名称:EINT.c
* 实现功能:测试外部中断的操作
* 作者:jianqi
* 版本:1.0
#include"2440addr.h" //包含2440相关寄存器的设置
#include"def.h"
#define LED1 5
#define LED2 6
#define LED3 7
#define LED4 8
#define KEY1 1
#define KEY2 4
#define KEY3 2
#define KEY4 0
#define Bit(x) (1<
#define Output(x) (1<<2*x) //将对应IO置为输出
#define LED_On(x) rGPBDAT=~Bit(x) //点亮对应LED
* 名称:Key1_ISR
* 功能:key1控制LED1亮灭
* 入口参数:无
* 出口参数:无
void __irq Key1_ISR(void) //EINT1中断服务程序
{
int led;
rSRCPND=rSRCPND|(0x01<<1); //清除中断标志位
rINTPND=rINTPND |(0x01<<1); //清除中断标志位
led=rGPBDAT&(0x1<
if (led==0)
{
rGPBDAT=rGPBDAT|(0x1<
}
else
{
rGPBDAT=rGPBDAT&~(0x1<
}
}
* 名称:Key2_ISR
* 功能:key2控制LED2亮灭
* 入口参数:无
* 出口参数:无
void __irq Key2_ISR(void) //EINT4中断服务程序
{
int led;
rSRCPND=rSRCPND|(0x01<<4); //清除中断标志位
rINTPND=rINTPND |(0x01<<4);//清除中断标志位
if(rEINTPEND&(1<<4))
{
rEINTPEND=rEINTPEND|(0x1<<4); //清除中断标志位
led=rGPBDAT&(0x1<
if (led ==0)
{
rGPBDAT=rGPBDAT|(0x1<
}
else
{
rGPBDAT=rGPBDAT&~(0x1<
}
}
}
* 名称:Key3_ISR
* 功能:key3控制LED3亮灭
* 入口参数:无
* 出口参数:无
void __irq Key3_ISR(void) //EINT2中断服务程序
{
int led;
rSRCPND=rSRCPND|(0x01<<2); //清除中断标志位
rINTPND=rINTPND |(0x01<<2); //清除中断标志位
led=rGPBDAT&(0x1<
if (led==0)
{
rGPBDAT=rGPBDAT|(0x1<
}
else
{
rGPBDAT=rGPBDAT&~(0x1<
}
}
* 名称:Key4_ISR
* 功能:key4控制LED4亮灭
* 入口参数:无
* 出口参数:无
void __irq Key4_ISR(void) //EINT0中断服务程序
{
int led;
rSRCPND=rSRCPND|0x1; //清除中断标志位
rINTPND=rINTPND |0x1; //清除中断标志位
led=rGPBDAT&(0x1<
if(led==0)
{
rGPBDAT=rGPBDAT|(0x1<
}
else
{
rGPBDAT=rGPBDAT&~(0x1<
}
}
* 名称:Main
* 功能:初始化外部中断相关寄存器
* 入口参数:无
* 出口参数:无
void Main(void)
{
rGPBCON=(1<<2*LED1)|(1<<2*LED2)|(1<<2*LED3)|(1<<2*LED4);//设置四个LED为输出
rGPBDAT=0xffff; //全部熄灭
rGPFCON=0xaaaa; //0~7外部中断
rEXTINT0=0x20222; //下降沿中断
rEINTMASK=~(1<<4); //不屏蔽外部中断0,1,2,4
rEINTPEND=(1<<4); //0,1,2,4产生中断
rSRCPND=0x17; //外部中断
rINTPND=0x17; //外部中断使能
rINTMOD=0x00; //全部为IRQ中断
rINTMSK=~0x17; //不屏蔽外部中断
pISR_EINT0=(U32)Key4_ISR;
pISR_EINT1=(U32)Key1_ISR;
pISR_EINT2=(U32)Key3_ISR;
pISR_EINT4_7=(U32)Key2_ISR;
while(1)
{
;
}
}
关键字:ARM9 外部中断 功能测试
引用地址:
ARM9外部中断功能测试
推荐阅读最新更新时间:2024-03-16 14:52
谈谈ARM7与ARM9的区别
由于职业的关系,经常会回答一些ARM初学者的问题,虽然问题千奇百怪,但以下两个问题绝对很有代表性。 ARM7和ARM9的都有些什么区别? 我准备学ARM,但不知是选ARM7还是ARM9好? 也许这些问题在大虾们的眼里已不是问题,但对于初学者确实很具必要弄清楚。先说下:ARM7和ARM9的区别。 1. 时钟频率的提高 虽然ARM7和ARM9内核架构相同,但ARM7处理器采用3级流水线的冯·诺伊曼结构;,而ARM9采用5级流水线的哈佛结构。增加的流水线设计提高了时钟频率和并行处理能力。5级流水线能够将每一个指令处理分配到5个时钟周期内,在每一个时钟周期内同时有5个指令在执行。在常用的芯片生产工艺下,ARM7一般运行在100MH
[单片机]
STM32F1外部中断的使用
中断对于开发嵌入式系统来讲的地位绝对是毋庸置疑的,在C51单片机时代,一共只有5个中断,其中2个外部中断,2个定时/计数器中断和一个串口中断,但是在STM32中,中断数量大大增加,而且中断的设置也更加复杂。今天就将来探讨一下关于STM32中的中断系统。 1 基本概念 ARM Coetex-M3内核共支持256个中断,其中16个内部中断,240个外部中断和可编程的256级中断优先级的设置。STM32目前支持的中断共84个(16个内部+68个外部),还有16级可编程的中断优先级的设置,仅使用中断优先级设置8bit中的高4位。 STM32可支持68个中断通道,已经固定分配给相应的外部设备,每个中断通道都具备自己的中断优先级控制字节PRI
[单片机]
STM8S 外部中断一直进解决方法
用到官方的函数库操作,也看了例程,设计方法基本一样: GPIO_Init(GPIOA, (GPIO_Pin_TypeDef)(GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6), GPIO_MODE_IN_PU_IT); //设置外部IO中断模式 EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOA, EXTI_SENSITIVITY_FALL_ONLY); //设置中断触发方式 然后外部中断就可以进了,但是发现中断服务函数没有中断源的情况下一直进。 解决方法: 在初始化外部中断的时候,总中断一定要关。 初始化完外部中断,在开总中断,上述情况得到解决,只有触发源来的时候
[单片机]
绝缘电阻测试仪的功能特点及应用优势
在1555和经过重新设计的Fluke1550绝缘电阻测试仪,提供数字绝缘测试最高可达10kV,非常适合用于测试各种高电压设备,包括开关设备,电动机,发电机和电缆。福禄克的绝缘测试仪现在可以进行在IEEE43-2000与一流的,3年保修和CAT IV 600 V安全等级规定的试验电压的整个范围。随着测量存储和PC接口,1555和1550是设计用来识别发生前的潜在设备故障的预防性或预测性维护计划的完美工具。 FLuke 1555主要特性: ●测试电压高达 10 kV,使用 Fluke Connect? 现场进行趋势分析,从而节省时间 ●安全等级为 CAT III 1000 V、CAT IV 600 V ●警告功能可提醒用户存在线路
[测试测量]
内置测试图案产生功能的数字视频信号测试系统
数字电视机播放接收的模拟信号之前必须先将之转为数字视频信号,这个模拟数字转换过程先在传输通道内进行,已转为数字格式的视频信号再传送到路径选择及生产控制开关系统,然后才传送到录像系统或发送器。在整个视频信号传送过程中,我们可充分利用串行数字视频信号集成电路的内置测试图案产生功能测试电视信号的完整性。 数字电视机必须将视频信号转化为画面影像,但由于不同格式的视频信号有不同特性,而且需要转换的视频信号数量非常庞大,加上数字电视机同时采用并行及串行方式传送数据,因此要测试视频信号的转换是否有讹误并不容易。此外,视频信号数据必须加以编码或加密,以免图案信号有太多直流或附带连串的“1”或“0”信号,因此整个测试过程可说极为艰
[测试测量]
谷歌与苹果专利官司和解,iOS 12.3测试版多项功能回归
在谷歌I/O大会发布Android Q的同时,苹果也是悄悄推送了iOS 12.3最新测试版。 据了解,此次更新加入了全新的TV App,其中两个重要的功能被突出,分别是“现在观看”和“接下来播放”,搭载新的机器学习推荐引擎,可以根据你喜欢看的内容推荐个性化新内容。此次更新苹果除了继续提高系统稳定性外,还重点改善了一些系统Bug。 据了解随着苹果和高通专利官司的和解,苹果原先的上滑清除程序动画重新回归,还有设置iPhone壁纸时重新支持图片缩放功能也一同回归。
[嵌入式]
stm32 外部中断的使用(含实例)
中断对于开发嵌入式系统来讲的地位绝对是毋庸置疑的,在C51单片机时代,一共只有5个中断,其中2个外部中断,2个定时/计数器中断和一个串口中断,但是在STM32中,中断数量大大增加,而且中断的设置也更加复杂。今天就将来探讨一下关于STM32中的中断系统。 1 基本概念 ARM Coetex-M3内核共支持256个中断,其中16个内部中断,240个外部中断和可编程的256级中断优先级的设置。STM32目前支持的中断共84个(16个内部+68个外部),还有16级可编程的中断优先级的设置,仅使用中断优先级设置8bit中的高4位。 STM32可支持68个中断通道,已经固定分配给相应的外部设备,每个中断通道都具备自己的中断优先级控制字
[单片机]
Facebook推出二维码付款功能 目前已在美国测试
新浪数码讯 4月6日上午消息,Facebook的支付功能“Facebook Pay”将支持用户通过二维码来来进行用户之间的付款,用户扫描朋友或家人的收款码就可以进行转账。目前此功能在美国进行测试,尚未正式推出。 Facebook Pay于2019年推出,使用户可以向朋友和家人汇款,或向企业付款,购买产品等等。它已集成到Facebook的所有应用中,包括Facebook,Messenger,Instagram和WhatsApp。在发布之初,Facebook Pay已经支持通过Messenger和Facebook应用进行用户之间付款,现在,这家社交媒体希望以进一步增多付款方式。 二维码付款的方式用户不会陌生,这几乎已经是
[手机便携]