真诚与善良是最大的财富
分类: 嵌入式
2010-08-17 08:33:55
一、C语言编写详解
1.工程目录最好放在:
CCStudio_v3.3\MyProjects路径下
2.CSS下和DSP6000编程紧密相关的目录结构:
a.CCStudio_v3.3\C6000\csl\include ---DSP6000常用头文件
b.CCStudio_v3.3\C6000\csl\lib ---DSP6000常用库文件
c.CCStudio_v3.3\C6000\cgtools\bin --各种编译工具
3.我们要编写的程序结构:
a.含有main()函数的.c的源文件,而且这个文件的名字最好以main结尾
b.添加.cmd文件:内存的分配
c.添加.asm文件:中断向量表的文件
d.常用头文件:
e.常用库文件:
4. 含有main()函数的.C的主文件的书写规范:
.c的源文件完整内容如下:
#include
//#include
#include
#include
#include
#include
#include
#include "dm642.h" //dm642常用配置
#include "rtciic.h" //晶振总线配置,rtc即晶振,IIC即总线,
#include "eeprom.h" //EEPROM的配置,EEPROM (Electrically Erasable Programmable Read-Only Memory),电可擦可编程只读存储器--一种掉电后数据不丢失的存储芯片。
#include "io&led.h" //输入输出及led配置
#include "dm642_ide.h" //IDE接口配置,IDE(Integrated Drive Electronics),即电子集成驱动器,
#include "dm642_flash.h" //flash存储器配置
#include "dm642_uart.h" //通用异步收发传输器的配置,UART通常用在与其他通讯协定(如RS-232)的连结上
extern far void vectors(); //调用中断向量表
static GPIO_Handle hGpio; //GPIO句柄
void main()
{
/*-------------------------------------------------------*/
/* perform all initializations,开始初始化 */
/*-------------------------------------------------------*/
DM642_init();
/*----------------------------------------------------------*/
/*中断向量表的初始化*/
IRQ_globalDisable();
//Point to the IRQ vector table,指向中断向量表
IRQ_setVecs(vectors);
/*----------------------------------------------------------*/
hGpio = GPIO_open(GPIO_DEV0,GPIO_OPEN_RESET);
GPIO_reset(hGpio);////GPIO复位
//GPIO_config(hGpio,&MyGPIOCfg),GPIO的配置;
GPIO_pinEnable(hGpio,GPIO_PIN15); //GPIO_PIN15管脚使能
GPIO_pinEnable(hGpio,GPIO_PIN4);
GPIO_pinEnable(hGpio,GPIO_PIN5);
GPIO_pinEnable(hGpio,GPIO_PIN6);
GPIO_pinEnable(hGpio,GPIO_PIN7);
GPIO_pinDirection(hGpio,GPIO_PIN15,GPIO_OUTPUT);//GPIO_PIN15管脚输出信号
GPIO_pinDirection(hGpio,GPIO_PIN4,GPIO_OUTPUT);
GPIO_pinDirection(hGpio,GPIO_PIN5,GPIO_OUTPUT);
GPIO_pinDirection(hGpio,GPIO_PIN6,GPIO_OUTPUT);
GPIO_pinDirection(hGpio,GPIO_PIN7,GPIO_OUTPUT);
while(1)
{
GPIO_pinWrite(hGpio,GPIO_PIN15,0); //输出0低电平,灯亮
DM642_waitusec(0x10000); //等待10000微妙,1秒=1000000微秒
GPIO_pinWrite(hGpio,GPIO_PIN15,1); //输出1高电平,灯灭
DM642_waitusec(0x10000);
GPIO_pinWrite(hGpio,GPIO_PIN4,0);
DM642_waitusec(0x10000);
GPIO_pinWrite(hGpio,GPIO_PIN4,1);
DM642_waitusec(0x10000);
GPIO_pinWrite(hGpio,GPIO_PIN5,0);
DM642_waitusec(0x10000);
GPIO_pinWrite(hGpio,GPIO_PIN5,1);
DM642_waitusec(0x10000);
GPIO_pinWrite(hGpio,GPIO_PIN6,0);
DM642_waitusec(0x10000);
GPIO_pinWrite(hGpio,GPIO_PIN6,1);
DM642_waitusec(0x10000);
GPIO_pinWrite(hGpio,GPIO_PIN7,0);
DM642_waitusec(0x10000);
GPIO_pinWrite(hGpio,GPIO_PIN7,1);
DM642_waitusec(0x10000); //这个程序是控制了GPIO15,GPIO4-7的高低电平
}
}
复制代码
.c的源文件编写规范如下: