实验目的
本节视频的目的是学习基于StarterWare开发环境配置GPIO管脚的方法和原理,并实现StarterWare开发环境下的按键中断控制。
实验原理
中断:当外围设备需要请求服务时,向CPU发出中断请求,CPU响应外围设备中断,停止执行当前程序,转去执行一个外围设备服务的程序,此服务程序称为中断服务处理程序,或称中断服务子程序。中断处理完毕,CPU又返回来执行原来的程序。
中断类型有图中的几种,其中复位中断的优先级是最高的;
优先级次于复位中断的是不可屏蔽中断,当使能时,不可屏蔽中断即发生。
接下来的是12个可屏蔽硬件中断,这种类型的中断需要满足一定条件下才能发生。需要在全局中断使能、不可屏蔽中断使能、可屏蔽中断使能、中断标志寄存器相应位置1且没有更高级的中断在执行的前提下才能发生。
接下来看一下硬件原理图,实验过程中使用的是USER0和USER1,对应接口名字分别是“GPIO0[6]和GPIO6[1]”。
以USER0为例,当按键按下时,GPIO0[6]为高电平,当按键松开时,GPIO0[6]为低电平。
基于StarterWare控制外设时可调用对应的API接口,无需配置复杂的寄存器。GPIO管脚复用配置的函数源码可以查看GPIO.c。
配置GPIO管脚方向的函数源码和函数使用说明可以查看gpio.c。其中,第一个参数时GPIO的基地址,第二个参数是GPIO的编号,第三个参数设置GPIO的方向。
中断使用流程分为7个步骤:
(1)初始化DSP中断控制器。
(2)使能DSP全局中断。
(3)配置按键脚的中断触发类型。包括上升沿、下降沿、双边触发三种触发方式。
(4)使能按键管脚所在的BANK中断。
(5)注册中断服务函数。注册中断服务函数是重点,这个函数决定了中断之后要做什么。
(6)映射中断到DSP的12个可屏蔽中断。
(7)使能DSP的可屏蔽中断。
中断使用的部分函数源码和函数使用说明可以查看interrupt.c。
部分的函数源码和函数使用说明可以查看gpio.c。
以中断触发类型配置函数为例,函数源码和函数使用说明可以查看gpio.c。其中,第一个参数是GPIO的基地址,第二个参数是GPIO的编号,第三个参数设置中断类型。
配置GPIO输出值的函数源码和函数使用说明可以查看gpio.c。其中,第一个参数是GPIO的基地址,第二个参数是GPIO的编号,第三个参数设置GPIO的电平。
操作现象
导入工程
编译工程
将CCS连接开发板并加载程序
点击运行程序
查看现象,按下USER1按键,核心板两个LED开始循环点亮。按下USER0按键,核心板个LED停止循环点亮。