⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adc.h

📁 philips arm7 lpc2103的常用功能的库函数第二部分
💻 H
字号:
/***********************************************Copyright (c)*********************************************
**                                Guangzou ZLG-MCU Development Co.,LTD.
**                                     
**                                       http://www.zlgmcu.com
**
**--------------File Info---------------------------------------------------------------------------------
** File name:               ADC.c
** Last modified Date:      2007-11-13
** Last Version:		    2.0
** Descriptions:		    模数转换模块 函数实现,采用设备描述符来操作
**
**--------------------------------------------------------------------------------------------------------
** Created by:			    WangGuoguang
** Created date:		    2007-11-08
** Version:				    1.0
** Descriptions:		    此头文件可在config.h中包含.
**
**--------------------------------------------------------------------------------------------------------
** Modified by:             WangGuoguang 
** Modified Date:		    2007-11-13 
** Version:	                2.2
** Descriptions:		    完善数据缓存处理.
**
*********************************************************************************************************/
#ifndef __ADC_H
#define __ADC_H

/*********************************************************************************************************
  ADC 软件包裁剪 
*********************************************************************************************************/
#ifndef ADC_FUN_LIB
#define ADC_FUN_LIB         1                                  
#endif

/*********************************************************************************************************
   定义 ADC 缓冲区的大小,单位为字节  (根据实际需求定义缓冲长度)
*********************************************************************************************************/
#define ADC_DATA_QUEUE_NUM           100                                /*  定义保存AD结果的数据队列长度*/
                                                              
/*********************************************************************************************************
  ADC 定义 (定义更多的编号是为了以后移植扩展)
*********************************************************************************************************/
#define ADC_0               0                                           /*  ADC 0 编号                  */
#define ADC_1               1                                           /*  ADC 1 编号                  */

/*********************************************************************************************************
  ADC 采样通道号
*********************************************************************************************************/
#define ADC_AIN0            0
#define ADC_AIN1            1
#define ADC_AIN2            2
#define ADC_AIN3            3
#define ADC_AIN4            4
#define ADC_AIN5            5
#define ADC_AIN6            6
#define ADC_AIN7            7

/*********************************************************************************************************
  ADC 获取状态定义
*********************************************************************************************************/
#define ADC_GET_START       40
#define ADC_GET_STARTMODE   41
#define ADC_GET_USECHN      42
#define ADC_GET_DONECHN     43
#define ADC_GET_STATE       44

/*********************************************************************************************************
  ADC 读取转换结果操作方式定义
*********************************************************************************************************/
#define ADC_BUSY            10
#define ADC_IDLE            11
#define ADC_OK              12
#define ADC_ERR             13
#define ADC_PAUSE           14
#define ADC_BUF_FULL        15	

#define ADC_STOP            20
#define ADC_START           21

#define ADC_SOFE            30
#define ADC_BURST           31

/*********************************************************************************************************
** Function name:      adcInit
**
** Descriptions:       用户初始化接口函数,解释用户的字符串命令,并对ADC初始化及设置中断
** Input parameters:   uiID  --部件设备号 :0-ADC0;1-ADC1
**			           pcArg --字符串输入指针参数,输入参数格式为:关键字0=值0[空格]关键字1=值1[空格]......
**                             关键字 :
**                     pRsv  --保留指针参数,可输入NULL.
** Output parameters:  OPERATE_FAIL    -- 操作失败
** Returned value:     OPERATE_SUCCESS -- 操作成功
**
** Using example :     char *pcArg = "Chn=1 ADCClk=100000"; adcInit(0,pcArg,NULL);
** Notice:             设备操作失败的原因是输入不正确的设备号.
**                     本API函数的参数是在FPCLK=11059200Hz的频率下设置的
**********************************************************************************************************/
uint32    adcInit (uint32 uiID,
                   char  *pcArg,
                   void  *pRsv);

/*********************************************************************************************************
** Function name:	   adcSetMode
**
** Descriptions:	   参数设置函数,解释用户的字符串命令,并对ADC进行设置及设置中断
** input parameters:   uiID  --部件设备号 :0-ADC0;1-ADC1
**                     pcArg --字符串输入指针参数,输入参数格式为:关键字0=值0[空格]关键字1=值1[空格]......
**                             关键字:  Chn:      可选择范围从 1~8;
**                                      ADCClk:   <= 4.5MHZ,输入范围:0~4500000;
**                                      Burst :   0 -软件控制模式,1 -硬件控制模式
**                                      Precision:可输入范围:3~10
**                                      PowerDown:可选择:0 -掉电模式, 1 -ADC处于正常工作模式
**                                      Start:    启动控制选择. 根据手册数据,可选择范围:0~7 
**                                      Edge:     启动触发信号的边沿选择. 0 -下降沿, 1 -上升沿转换.
**
**                     pRsv  --保留指针参数,可输入NULL.
** Output parameters:  OPERATE_FAIL    -- 操作失败
** Returned value:     OPERATE_SUCCESS -- 操作成功
**
** Using example :     char *pcArg = "Chn=1 ADCClk=100000"; adcSetMode(0,pcArg,NULL);
** Notice:             1.设备操作失败的原因是输入不正确的设备号.
**                     2.本API函数的参数是在FPCLK=11059200Hz的频率下设置的
**                     3.不允许在ADC工作忙状态下对ADC进行模式设置,否则直接返回错误.
*********************************************************************************************************/
uint32    adcSetMode (uint32 uiID,
                      char  *pcArg,
                      void  *pRsv);

/*********************************************************************************************************
** Function name:	        adcGetState
**
** Descriptions:            ADC状态获取函数
** Input parameters:        uiID          设备号,例如0表示使用ADC0
**                          uiParmCmd     要读取的参数类型,具体参见ADC.h宏定义
**                          pRsv          保留指针参数,可输入NULL.
**
** Returned value:          获取状态失败:     OPERATE_FAIL.    失败的原因:参数错误.
**                          获取状态成功:     根据不同命令获得的值意义不一样
**                            uiParamCmd = ADC_GET_START,       返回ADC_STOP,ADC_START;
**                            uiParamCmd = ADC_GET_STARTMODE,   返回ADC_BURST,ADC_SOFE;
**                            uiParamCmd = ADC_GET_USECHN,      返回通道号数组名;
**                            uiParamCmd = ADC_GET_DONECHN,     返回已完成转换的通道号数组名;
**                            uiParamCmd = ADC_GET_STATE,       返回ADC_BUSY,ADC_IDLE,ADC_ERR.
*********************************************************************************************************/
uint32    adcGetState (uint32  uiID,
                       uint32  uiParamCmd,
                       char   *pRsv);

/*********************************************************************************************************
** Function name:	   adcStart
**
** Descriptions:	   启动ADC
** input parameters:   uiID      --部件设备号:0-ADC0
**                     pRsv      --保留指针参数,可输入NULL.
** Output parameters:  OPERATE_FAIL    -- 操作失败
** Returned value:     OPERATE_SUCCESS -- 操作成功
*********************************************************************************************************/
uint32    adcStart (uint32 uiID, void *pRsv);

/*********************************************************************************************************
** Function name:	   adcStop
**
** Descriptions:	   停止ADC
** input parameters:   uiID      --部件设备号:0-ADC0
**                    
** Output parameters:  OPERATE_FAIL    -- 操作失败
** Returned value:     OPERATE_SUCCESS -- 操作成功
*********************************************************************************************************/
uint32    adcStop (uint32 uiID);

/*********************************************************************************************************
** Function name:	   adcGetValue
**
** Descriptions:	   读取ADC转换结果
** input parameters:   uiID      --部件设备号:0-ADC0
**                     uiChn     --ADC读取结果通道号
**                     pRsv      --保留指针参数,可输入NULL.
** Output parameters:  OPERATE_FAIL    -- 操作失败
** Returned value:     读取ADC结果     -- 操作成功
**
** Using example :     
*********************************************************************************************************/
uint32    adcGetValue (uint32 uiID,
                       uint32 uiChn,                    
                       void  *pRsv);

/*********************************************************************************************************
** Function name:			adc0Isr
** Descriptions:			ADC0中断服务程序
** input parameters:		无
** Returned value:			无
*********************************************************************************************************/
void    adc0Isr (void);
            

#endif                                                                  /*  __ADC_H                     */
/*********************************************************************************************************
  END FILE
*********************************************************************************************************/                    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -