4.5  DSPC程序举例

4.5 DSPC程序举例

例4-6 通过延时函数,实现2803x DSP引脚GPIO26上的LED指示灯闪烁。

978-7-111-57271-8-Chapter04-24.jpg

978-7-111-57271-8-Chapter04-25.jpg

例4-7 指示灯亮/灭控制和按键检测。指示灯LED1连接2803xDSP引脚GPIO26,指示灯LED2连接引脚GPIO40。LED1一直闪烁。按键K连接引脚GPIO32,未按下时为高,LED2熄灭。按下后为低,LED2点亮。

978-7-111-57271-8-Chapter04-26.jpg

978-7-111-57271-8-Chapter04-27.jpg

例4-8 使用CPU定时器0定时中断,让连接到2803xDSP的引脚GPIO26的LED指示灯每隔0.5s闪烁一次。

978-7-111-57271-8-Chapter04-28.jpg

978-7-111-57271-8-Chapter04-29.jpg

这是中断服务程序编写的一个实例,关键是PIE中断向量表的建立。为了处理PIE中断,在DSP2803x_PieVect.h头文件中建立了一个结构PIE_VECT_TABLE,它实际上是指向PIERAM区的一个中断函数的地址集,并定义了该结构类型的一个结构变量PieVectTableIn-it,以便其他文件查用。该头文件的主要内容如下:

978-7-111-57271-8-Chapter04-30.jpg

978-7-111-57271-8-Chapter04-31.jpg

978-7-111-57271-8-Chapter04-32.jpg

主函数中的初始化PIE向量表函数InitPieVectTable()为

978-7-111-57271-8-Chapter04-33.jpg

主函数中的初始化PIE函数InitPieVectCtrl()为

978-7-111-57271-8-Chapter04-34.jpg

例4-9 将GPIO27配置为XINT1(28035三个外中断的中断触发源可配置为GPIO0~GPIO31之间的任意一个)。如果按键按下,一个下降沿将触发进入中断XINT1,在中断中将让连接到GPIO26的LED的状态翻转一次。

978-7-111-57271-8-Chapter04-35.jpg

978-7-111-57271-8-Chapter04-36.jpg

978-7-111-57271-8-Chapter04-37.jpg