"); //-->
本文是学习SH7125中断应用的编程实现的一些理解,记录下来备查和分享。
1. HEW自动生成的跟中断相关文件的说明
HEW自动生成的跟中断相关的文件有三个:vect.h、intprg.c和vecttbl.c。
Vect.h
声明中断函数。
Intprg.c
中断函数的实现,在该文件需要编程人员对所需要的中断对应的函数进行填充,实现中断处理功能。
Vecttbl.c
将中断函数指针定位到中断向量中。
详细说明请参考文档rcj10j0045_shcum。中文版的。
通过HEW自动生成的文件,中断处理的应用就简化为两个步骤:初始化和找到中断处理函数实现。再此感受到HEW自动生成文件的强大。兴奋中……,比起当初用汇编写51,真是感慨颇多啊!
2. IRQ0中断初始化
IRQ0的初始化主要有三个过程,在初始化的过程中,又一次感受到iodefine.h的强大,简单直观的设定very exciting.
a) IRQ0端口模式设定
PFC.PACRL1.BIT.PA2MD = 3;
设定PA2端口为IRQ0的中断输入。
b) 中断模式设定
INTC.IRQCR.BIT.IRQ0S=0;
IRQ0有四种中断模式,即低电平、下降沿、上升沿和下降上升沿同时出发,分别对应的值为0、1、2、3;
c) 中断优先级设定
INTC.IPRA.BIT._IRQ0 = 9;
根据需要设定优先级。
d) 允许中断,very important.
set_imask(0);
调用此函数需要包含machine.h。
至此,初始化过程完成。
3. 中断应用——利用按键实现的流水灯控制
最后提供学习IRQ0中断应用的工程,通过按键依次点亮6个LED灯。同时可修改中断模式理解不同触发方式。
很高兴能和大家分享,欢迎大家讨论,共同进步!谢谢!
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。