F2812开发系统提供的例程是为了用户更方便直接的进行开发。由于DSP开发经常没有操作系统的支持,应次接触到很多较低层的东西,这些例程就相当于起到了操作系统的作用,方便用户直接编成应用外设。这里以ADC的例程为例做一下简单介绍。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
首先介绍一下2812的AD。12位,16路。可分成独立的两部分,每部分8路(各有一套采样保持电路)以便事件管理器(EVA,EVB)分别使用;也可级联使用。开发系统中有关AD的例程为DSP28_Adc.c文件,其中包括了都文件DSP28_Adc.h,还有相关例程DSP28_GlobalVariableDefs.c以及.cmd文件,下面介绍各自的作用。
1 首先在.cmd文件中为AD的各个寄存器分配空间:
MEMORY
{
PAGE0: ....
PAGE1: ....
ADC :origin = 0x00007100, length = 0x000020
....
}
SECTION
{
....
AdeRegFile :> ADC, PAGE = 1
....
}
2 在DSP28_GlobalVariableDefs.c定义用到的数据段AdeRegFile
#pragma DATA_SECTION(AdcRegs,"AdcRegFiles");
volatile struct ADC_REGS AdeRegs;
3 初始化这些变量。这些是DSP28_Adc.c和DSP28_Adc.h完成的
首先在DSP28_Adc.h定义个寄存器位置定义包括3个控制寄存器、最大转换通道寄存器、自动排序状态寄存器、状态标志寄存器、输入选择排序寄存器、结果寄存器。最终汇总的一个结构体中:struct ADC_REGS,并定义此类型的结构体变量:AdcRegs.以后要对AD进行设置时,就设置此变量的各个位。
然后在DSP28_Adc.c中设置AdcRegs,使它进入初始化阶段。具体设置参考初始化要求。这样就完成了对AD的定义以及初始化,在此基础上用户可以直接开发使用AD。其他外设步骤类似。
文章评论(0条评论)
登录后参与讨论