一起学mini2440裸机开发(十)--mini2440外部中断实验

一起学mini2440裸机开发(十)--mini2440外部中断实验

ID:31730082

大小:109.03 KB

页数:16页

时间:2019-01-17

一起学mini2440裸机开发(十)--mini2440外部中断实验_第1页
一起学mini2440裸机开发(十)--mini2440外部中断实验_第2页
一起学mini2440裸机开发(十)--mini2440外部中断实验_第3页
一起学mini2440裸机开发(十)--mini2440外部中断实验_第4页
一起学mini2440裸机开发(十)--mini2440外部中断实验_第5页
资源描述:

《一起学mini2440裸机开发(十)--mini2440外部中断实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、—起学mini2440裸机开发什)-mini2440外部中断实验我今天一整天都在试着将TQ2440的那种处理中断的方法(即安装中断向量表)移植到MDK中的mini2440,但是一直没成功,这种方法一直没成功,后來又想,还是先从最简单的开始吧,就是不利用中断向量表,直接像利用51单片机那样的中断一样使用它,但是也没成功。考虑到程序跑飞的可能性,将程序利用MDK中的Download功能下载到了NorFlash中去,竟然行了,想了想原因,明白是怎么回事了。我原來是利用jlink调试的方法,这种调试方式是直接将程序放到了SDRAM的0x300000

2、00处,如果发生中断后,比如发生了普通中断IRQ,那么PC指针被强制设为0x00000018,而我的程序是放在了0x30000000处,在地址0x00000018处有什么我也不知道,这样子程序就跑飞了。下面还是简单说一下我的外部中断实验,结合具体的实验,分析中断的响应过程,以及中断服务函数的编写。实验功能本实验实现的功能:mini2440开发板上有6个按键,将其中的前4个按键设为外部中断方式,当按下K1时,LED1亮;当按下K2时,LED2亮;当按下K3时,LED3亮;当按下K4时,LED4亮。硬件电路分析:我的256M的mini2440板

3、子上有4个LED,其接口电路如图1所示,当GPIO口输出为低电平时,相对应的LED灯亮;输出高电平时,LED灯灭。图1LED接口电路按键接口电路如图2所示,当按键没有按下时,GPGx引脚为高电平;当按键按下时,引脚电平变为低电平。VDD33V图2按键接口电路程序分析:外部中断工程的文件布局如图3所示。该工程有三个模块组成:按键模块、LED模块和中断处理模块。按键模块主要包含button.c和button.h文件。LED模块包含led.c和led.h文件。中断处理模块主要包含interrupt.c、interrupt.h>isrservice

4、.c和isrservice.h文件。其中,interrupt.!!和interrupt.c文件主要包含中断初始化函数,isrservice.c和isrservice.h文件主要包含中断处理函数。下面我贴出源文件main.c文件#include"led.h"#include"button.hu#include"isrservice.h"#include"interrupt.h”intmain(){Led」nit();//初始化LEDKeylnt_lnit();〃初始化按键lrq」nit();〃初始化外部中断while(1)//循坏,等待中断发

5、生}led.c文件*我的mini2440开发板上4个LED灯对应的GPIO口*LED1…GPB5LED2—GPB6*LED3—GPB7LED4—GPB8*★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★■A-*****/#include*函数名称:voidLed_lnit(void)*全局变量:无*参数说明:无水返回值;无*功能:设置GPB5-8为输出功能,初始化4个LED灯灭/voidLed_lnit(void){GPBCON&=-((3<<10)

6、(3«12)

7、(3<<1

8、4)

9、(3«16));GPBCON

10、=((1«10)

11、(1«12)

12、(1«14)

13、(1«16));〃设置GPB5-8口为输出功能GPBUP&=-((1«5)

14、(1«6)

15、(1«7)

16、(1«8));〃上拉电阻使能GPBDAT

17、=(1«5)

18、(1«6)

19、(1«7)

20、(1«8);〃令GPBDAT5-8均为高电平,即令4个led灯全灭}led.h文件#ifndef_LED_H_#define_LED_H_#include#defineLed1_On()#defineLed1_Off()#defineLed2_On()#defi

21、neLed2_Off()#defineLed3_On()#defineLed3_Off(){GPBDAT&=(-(1«5));}{GPBDAT

22、=(1«5);}{GPBDAT&=(-(1«6));}{GPBDAT

23、=(1«6);}{GPBDAT&=(-(1«7));}{GPBDAT

24、=(1«7);}#defineLed4_0n(){GPBDAT&=(-(1«8));}#defineLed4_0ff(){GPBDAT

25、=(1«8);}*函数名称:voidLed_lnit(void)*全局变量:无*参数说明:无*返回值;无*功能:设置GPN5-

26、8为输出功能,初始化4个LED灯灭*****************************************************IvoidLed_lnit(void)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。