(2)有键按下B
当有按键按下时,被按的按键导通了与I/O 0 和 I/O 5 相连的两个 GPIO 口,此时I/O 0 的低电平会将I/O 5 的高电平被拉低。又因为 UCB1400 的 I/O 5-8 被设定为下降沿触发,这时候会通过 SEP3203 的 GPIO PH3 口产生一个外部中断产,从而进入中断处理流程。
(3)行地址的判断 C
中断处理程序会通过读取 UCB1400 的中断状态寄存器中的值,判断产生了下降沿的行线,进而产生中断信号。
(4)列地址的判断D
通过配置 UCB1400 的数据寄存器,I/O 0-3 四个端口将会依次输出 0001、0010、0100、1000 的数字序列,接着读取它的数据寄存器,查看数值是否改变。在此时,按键尚未抬起,即 I/O 0 和 I/O 5仍然连通。当输入到 0001时,由于此时I/O 0口被置高,所以相应的 I/O 5口也会被置高,所以芯片的数据寄存器值就会发生相应的变化,此时我们就可以判断出是因为哪根线的拉高而产生这样的变化的,进而判断出正确的列数,同时由上述关于行地址和列地址的判断,具体的按键数值也就可以求出来了。
(5)按键是否抬起的判断E、F
当我们再给 I/O 0-3 配置低电平时,如果此时按键还没有被抬起,那么I/O 5口又将会被拉低。如果I/O 5口一直是低电平,则表明按键还是没有被抬起,这时系统将会隔一段时间打印一次按键的值。
(6)按键抬起G
如果抬起按键,这时行线全部被电源正极拉高,接着我们就可以清除中断源,从整个中断处理函数中退出,进而恢复到起始的状态。
2.7 系统初始化
在SEP3203设计平台上,完成任何一个系统设计,首先要进行系统初始化。下面介绍在调试状态下系统初始化的过程,即调试状态下系统引导、PMC 模块初始化和中断向量表建立的过程。
首先是GE01MB 系统的引导,即在运行主程序之前,需要先对硬件环境做一些操作,使得主程序能够顺利的运行,其中实现系统引导的代码叫做启动代码。其实在 SEP3203 的设计和使用中,有三种启动代码:NorFlash 启动、NandFlash 启动和调试状态下的启动。不过由于在程序编写、测试过程中都处于调试状态,一直要等到程序代码测试验证完成后才会烧写到开发板的 NorFlash 或 NandFlash 中,所以我就先介绍在调试状态中的启动代码。当程序处于开发和调试阶段,我们可以直接通过 ARM 提供的工具ADS来完成代码的编写和编译,然后在 AXD Debugger 中进行调试和跟踪代码。在这个过程中,只用初始化硬件,建立好相应的执行环境,进而运行所设计的代码,而不需要搬运代码。调试状态的启动代码分为环境的建立、EMI 的配置、中断使能和和主程序跳转四个部分。
然后是GE01MB 的功耗管理模块。它能够在SEP3203芯片的不同用途中,自动的调节芯片内部各个模块的时钟源供给以及相应的系统工作频率,进而使得SEP3203芯片以降低整体功耗为基础,在四种功耗模式slow、normal、idle 和 sleep之间的切换。而在系统初始化中,首先要打开需要的模块,设置系统处于在 Normal 状态下,并设定工作频率。
最后是中断向量表的建立。在 SEP3203 芯片中,由中断控制器(INTC)来完成ARM 中唯有的两个外部中断源IRQ 和 FIQ 的扩展和管理。SEP3203 中断控制器(INTC)是用来接收中断信号,并判别出发出中断信号的确切中断源。然后再按优先级次序送入 CPU,由 CPU 按优先级执行中断服务子程序。中断控制器内部共有四个模块,分别是中断控制器寄存器模块、IRQ 中断产生模块、优先级过滤器产生模块和FIQ 中断产生模块。当接在中断控制器上的外部中断源产生中断时,它会触发与中断控制器相对应的那根信号线,当IRQ 允许寄存器的对应位允许时,那么这个中断将会被存入中断状态寄存器中。然后此信号将和 IRQ的 屏蔽寄存器的对应位相比较,若IRQ 的屏蔽寄存器应允这个信号通过,则存入IRQ 中断信号未屏蔽寄存器。此时的信号是 IRQ 未屏蔽中断信号,接着这个信号和优先级过滤器相比较。通过优先级的比较,判断出确切的中断源。然后触发 ARM 的中断信号线,通知 ARM 内核有IRQ 中断产生。ARM 收到 IRQ 中断信号后自动将 CPSR 的值存入 SPSR_irq,然后跳转到异常向量表中的 0x18 处,执行IRQ 中断处理程序。而在 0x18 地址上存放的是一条跳转指令,它将转到 IRQ_Handler 定义的地址处继续执行相应的程序。在中断处理程序中首先要保存当前的寄存器,这个操作称为现场保护。然后是一条跳转语句,它将跳转到 IRQ 中断处理程序处执行相应的程序。执行完中断处理程序后需要将先前保存的寄存器恢复出来,称为现场恢复,并将程序计数器恢复中断发生时下一条指令。至此整个中断的响应过程就结束了。与IRQ相比,FIQ 中断没有优先级的判断。
- 上一篇:51单片机直流步进稳压电源设计+源程序+电路图
- 下一篇:Codewarrior移相全桥高频开关电源设计
-
-
-
-
-
-
-
g-C3N4光催化剂的制备和光催化性能研究
上市公司股权结构对经营绩效的影响研究
浅析中国古代宗法制度
江苏省某高中学生体质现状的调查研究
高警觉工作人群的元情绪...
中国传统元素在游戏角色...
C++最短路径算法研究和程序设计
巴金《激流三部曲》高觉新的悲剧命运
NFC协议物理层的软件实现+文献综述
现代简约美式风格在室内家装中的运用