让LED闪起来
这次讨论一下TI的编程特点,特别是文件组织结构。 这是建立在前一个项目《打造自己的C2000 LaunchPad项目》基础上的。首先
使用延时函数来控制切换IO口状态,使LED闪光,然后使用定时器控制它的闪光。 一、部分文件介绍 1、F2802x_Device.h 此文件是常用的宏的定义,里面定义了数据类型,包含了必要的头文件,还
有所使用器件的定义: #define TARGET 1 // User To Select Target Device: …… #define DSP28_28027PT TARGET …… 如果使用其它器件,可以在这里更改。 2、F 2802x_Examples.h 它是为了设置PLL,系统时钟,而定义的常数。 #define DSP28_DIVSEL 2 // Enable /2 for SYSCLKOUT //#define DSP28_DIVSEL 3 // Enable /1 for SYSCLKOUT #define DSP28_PLLCR 12 // Uncomment for 60 MHz devices [60 MHz = (10MHz * 12)/2] …… 此文件中的约定值使时钟设置为60MHz。 3、F2802x_CodeStartBranch.asm 一看名字就知道,是控制启动时转向的。它关闭看门狗并转向程序入口。 4、F2802x_DefaultIsr.c 它是缺省的中断程序,包括了所有中断程序的框架,如:
当进入中断时,将什么也不做,并停留在那里。用户编程时,可以重新定义中断
函数并转向它,如: PieVectTable.XINT1 = &UserInttruptFunction 也可以修改这个文件中的函数。 5、F2802x_GlobalVariableDefs.c 这个文件是是定义F28027内部寄存器的,与CMD文件一道分配寄存器地址,并定
义寄存器文件结构变量。如
从这里可以看到,要定义一个寄存器是很麻烦的,如果定义某个变量到绝对地址
也是采用这种办法。但TI说了,这个方法使用起来灵活。 6、F2802x_PieVect.c 这个文件是定义中断矢量表的。并且包括了一个初始化函数。在初始化时,要
用到它们。 7、F2802x_SysCtrl.c 系统的时钟控制,在这个文件中完成。
8、F2802x_MemCopy.c 这是对于烧写到FLASH中的程序,拷贝到RAM中运行时使用的。因为在flash中
运行程序,需要插入等待时间,在RAM中运行不需要等待。 9、F2802x_usDelay.asm 这是个延时函数,很简单。这个文件中还有个“ramfuncs”(具体细节将在其它
文章中叙述),这样定义后就可以使用MemCopy()将它拷贝到RAM中运行: MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart) 10、模块文件 如PWM、I2C、SPI等。文件中给出了基本的实现设置方法,应用程序中可以
根据具体情况,作适当修改。 二、F28027程序基本结构(流程) F2802x_CodeStartBranch.asm关闭看门狗、并跳至C程序
|
三、用延时函数控制的LED程序 程序如下 void main(void) { InitSysCtrl(); InitGpio(); DINT; InitPieCtrl(); IER = 0x0000; IFR = 0x0000; InitPieVectTable(); for (;;) { GpioDataRegs.GPATOGGLE.bit.GPIO0 = 1; DELAY_US(100000L); } } 1、InitSysCtrl() 前面提到了这个函数。这里,使用内部振荡器,60MHz,仅打开GPIO时钟。 SysCtrlRegs.PCLKCR3.bit.GPIOINENCLK = 1; // GPIO 2、InitGpio() 这里,需要将LaunchPad上的几个灯(或某一个)设置为输出,本例程只用LED0,
因此只需要在后面加一句: GpioCtrlRegs.GPADIR.bit.GPIO0 = 1; 3、PIE 本程序不使用中断,所以仅初始化中断表就行了。 4、IO控制 IO的控制,可以使用GPIO data寄存器,也可以使用GPIO Clear或Set寄存器,这里
使用的是GPIO Toggle寄存器。使用这个寄存器在流水线作业中有它的好处,可以参考
数据手册。 GpioDataRegs.GPATOGGLE.bit.GPIO0 = 1; 四、调试 现在的程序,不对flash操作,因此,原来板子上的程序将不受影响。 对项目进行编译后,将LaunchPad接上电脑,点编译器中的“锤子”,即进入调试
状态,在这里可以单步等调试。具体情况从略。 |