主题 : 简单的mini2440轮询与中断系统 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 43116
精华: 0
发帖: 5
金钱: 25 两
威望: 5 点
贡献值: 0 点
综合积分: 10 分
注册时间: 2011-04-13
最后登录: 2014-01-17
楼主  发表于: 2011-05-31 12:13

 简单的mini2440轮询与中断系统

概述

轮询系统:一个简单的轮询系统就是不断的去询问你所关注的事件发生的条件是否成立。如果成立,则去执行那个事件。如果不成立,则去询问下一个事件。一直不断的去做循环询问,这就构成了一个简单的轮询系统。


中断:当CPU在执行一个程序的时候,每执行一条指令后,就会去查看是否有中断请求,如果有中断请求,则去执行中断服务程序,如果没有中断请求,则执行下一条指令。


中断处理过程:各种CPU的中断处理过程都是相似的,大致如下
(1).中断控制器汇集各个中断源的信号,然后告知CPU
(2).CPU保存当前运行环境(各个寄存器的值),再跳转至中断服务程序。
(3).在中断服务程序中,通过读取与中断相关的寄存器的值,判断产生的是哪个中断,并进行相应的处理。
(4).清除中断
(5).恢复原程序的运行环境,继续执行。


在mini2440开发板上有六个用户按键,4个LED灯和蜂鸣器,我们现在实现的系统功能是这样的:在正常情况下,按k1键,LED1亮,按k2键,LED2亮,按K3键,LED3亮,按k4键,蜂鸣器响,LED4一直处于闪烁状态。当按k5或k6的时候,执行中断程序,中断程序是让4个LED灯同时亮起,蜂鸣器也同时响起,并持续一段时间。

(PS:用ADS编译)
附件设置隐藏,需要回复后才能看到
天上的灰鸟
级别: 新手上路
UID: 48029
精华: 0
发帖: 19
金钱: 100 两
威望: 20 点
贡献值: 0 点
综合积分: 38 分
注册时间: 2011-05-27
最后登录: 2017-09-13
1楼  发表于: 2011-06-13 22:54
学习中