首页 > 编程知识 正文

stm32定时器中断实验报告,定时器单片机实验报告

时间:2023-05-05 04:00:50 阅读:112218 作者:1164

dsp

计时器中断方式实验报告

通信0203班kddbg 02211272

一.中断初始化和服务程序的编制

5402DSP中断大致分为两类,一类是可断开的中断,是可以通过软件断开或释放的硬件和软件中断。 5402有INT3 ~INT0(外部中断)、BRINT0、BXINT0)、TRINT、TXINTW )、TINT )、计时器中断)、HPint )、HPI中断)。

另一个是非屏蔽中断。 这些中断不能屏蔽。 包括所有软件中断以及两个外部中断RS和NMI中断。

5402 DSP有两个与中断相关的寄存器。 中断屏蔽寄存器IMR和中断标志寄存器IFR。 这些都是存储器图像寄存器(MMR ),IMR定义可屏蔽的硬件中断,并且如果存在IMR的位置1,允许相应的中断。 IFR指示是否出现中断,如果位于IFR的某个位置1,则指示出现了相应的中断,并且在处理中断之前中断标志不会清除为0。 中断标志有C54X复位和C54X复位4种。 中断由中断服务程序处理,常用于中断方式; 将1写入IFR的相应位,常用于检索方式; 使用适当的中断号码运行INTR命令。

因此,进行中断初始化时一般的中断初始化是清除中断标志寄存器IFR的中断标志,将中断屏蔽寄存器IMR的对应的屏蔽位设定为1,释放对应的中断,在INTM=0时全部屏蔽例如,在本实验中开放外部中断1的情况下,制作c语言中断程序如下。

voidinterrupt_init(void ) )。

{

IFR|=0x0ffff; //清除中断标志寄存器

IMR|=0x0002; //开放外部中断1

自动取款机(rsbx intm ); //打开所有可以断开的中断

}

C54X处理中断分为三个阶段:

第一阶段:接受终端的请求,IFR中的相应中断标志位置1

第2阶段:对于软件中断和非屏蔽中断,CPU会立即响应。 对于可屏蔽中断,只有满足一些条件才能响应。

优先级最高(同时发生多个中断时) ) ) ) ) )。

状态寄存器ST1的INTM位为0

中断屏蔽寄存器IMR相应位为1

如果CPU对中断作出响应,则使PC移动到适当的地址来取出中断矢量,输出中断响应信号IACK,并清除相应的中断标志

阶段3 ) CPU在中断向量中执行预定义的跳转指令,跳转到中断服务程序的执行

PC存储在数据存储堆栈的堆栈顶部

将中断向量地址加载到PC中

执行分支转移指令,跳转到中断服务程序

运行中断服务程序

中断,从堆栈顶弹出返回地址到PC

继续运行被中断的程序

用c语言编写中断服务程序时,请在普通函数前面加上关键字interrupt。 例如,写入外部中断1时为interruptvoidint1_ISR{}。 其他,中断服务程序的创建方法与一般的c语言程序相同。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。