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

📄 adc12.h

📁 arm(str710)usb功能的实现
💻 H
字号:
/****************************************Copyright (c)**************************************************
**                                      
**                                          STR710 development team
**                                          
**
**                                 
**
**--------------文件信息--------------------------------------------------------------------------------
** 文 件 名: adc12.h
** 创 建 人: lhl
** 创建日期: 2006年5月10日
** 描    述: 该文件包含了所有ADC12功能函数原型与所需要的常量
**
**--------------历史版本--------------------------------------------------------------------------------
** 创 建 人: lhl
** 版    本: V1.0
** 日   期: 2006年5月10日
** 描   述: 原始版本
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#ifndef __ADC12_H
#define __ADC12_H

#include "rccu.h"
#include "cpu_cfg.h"

    #ifdef __cplusplus
    extern "C" {
    #endif

#if EN_ARM_ADC12 > 0		//决定是否编译该文件

/************************************** 宏定义,常量定义 ******************************************/

#define ADC12_IT0_MASK   0x0100 // Masks for the update of interrupt bit for channel n
#define ADC12_IT1_MASK   0x0200
#define ADC12_IT2_MASK   0x0400
#define ADC12_IT3_MASK   0x0800

#define ADC12_IT_MASK    0x0F00 //Mask for the update of all the interrupt bit in the CSR
#define ADC12_MODE_MASK  0x0040 //Mask for Selecting mode
#define ADC12_START_MASK 0x0020 //Mask for configuring the converter

/**************************************  枚举类型定义  *******************************************/
typedef enum
{
  ADC12_SINGLE,
  ADC12_ROUND
} ADC12_MODE_T;		//ADC12 Conversion modes

typedef enum
{
  ADC12_CHANNEL0 = 0x00,
  ADC12_CHANNEL1 = 0x10,
  ADC12_CHANNEL2 = 0x20,
  ADC12_CHANNEL3 = 0x30
} ADC12_CHANNELS_T;		//ADC12 Channels

typedef enum
{
  ADC12_DA0 = 0x01,
  ADC12_DA1 = 0x02,
  ADC12_DA2 = 0x04,
  ADC12_DA3 = 0x08,
  ADC12_OR  = 0x2000
} ADC12_FLAG_T;		//ADC12 control status register flag

/************************************** 结构体类型定义  ******************************************/


/********************************** 全局外部函数原型声明 *****************************************/

/*********************************************************************************************************
;** 函数名称: ADC12_Reset
;** 功能描述: 系统复位时ADC12配置
;** 
;** 参    数: 无 
;** 返 回 值: 无
;**         
;** 作   者: lhl
;** 日   期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人: 
;** 日   期: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
void ADC12_Reset(void);

/*********************************************************************************************************
;** 函数名称: ADC12_ConversionStart
;** 功能描述: 启动ADC转换
;** 
;** 参    数: 无 
;** 返 回 值: 无
;**         
;** 作   者: lhl
;** 日   期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人: 
;** 日   期: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline void ADC12_ConversionStart (void)
{
  PCU_BOOTCR |= ADC12_START_MASK;	// Set the ADCen bit of the bootconf register
}

/*********************************************************************************************************
;** 函数名称: ADC12_ConversionStop
;** 功能描述: 禁止ADC转换
;** 
;** 参    数: 无 
;** 返 回 值: 无
;**         
;** 作   者: lhl
;** 日   期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人: 
;** 日   期: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline void ADC12_ConversionStop(void)
{
  PCU_BOOTCR &= ~ADC12_START_MASK;	// Clear the ADCen bit of the bootconf register
}
/*********************************************************************************************************
;** 函数名称: ADC12_ModeConfig
;** 功能描述: ADC转换模式配置
;** 
;** 参    数: conversion_mode: ADC12_SINGLE--single channel mode
;**                            ADC12_ROUND---round robin mode
;** 返 回 值: 无
;**         
;** 作   者: lhl
;** 日   期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人: 
;** 日   期: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline void ADC12_ModeConfig (ADC12_MODE_T conversion_mode)
{
  // Select the mode of conversion and update the CSR[6]
  ADC12_CSR= conversion_mode == ADC12_SINGLE ? ADC12_CSR | ADC12_MODE_MASK :\
                                               ADC12_CSR & ~ADC12_MODE_MASK;
}
/*********************************************************************************************************
;** 函数名称: ADC12_PrescalerConfig
;** 功能描述: 配置AD转换所需的prescaler
;** 
;** 参    数: adc12_clk: Sampling frequency.
;** 返 回 值: 无
;**         
;** 作   者: lhl
;** 日   期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人: 
;** 日   期: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
void ADC12_PrescalerConfig(UWORD32 adc12_clk);

/*********************************************************************************************************
;** 函数名称: ADC12_ChannelSelect
;** 功能描述: ADC转换通道选择
;** 
;** 参    数: adc12_channel: ADC12_CHANNEL0---选择通道 0
;**                          ADC12_CHANNEL1---选择通道 1
;**                          ADC12_CHANNEL2---选择通道 2
;**                          ADC12_CHANNEL3---选择通道 3
;** 返 回 值: 无
;**         
;** 作   者: lhl
;** 日   期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人: 
;** 日   期: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline void ADC12_ChannelSelect(ADC12_CHANNELS_T adc12_channel)
{
  // Update the CSR by the value of the selected channel
  ADC12_CSR |= adc12_channel;
}

/*********************************************************************************************************
;** 函数名称: ADC12_GetFlagStatus
;** 功能描述: 获得ADC12通道状态
;** 
;** 参    数: flag: ADC12_DA0--Data Available on Channel 0
;**                 ADC12_DA1--Data Available on Channel 1
;**                 ADC12_DA2--Data Available on Channel 2
;**                 ADC12_DA3--Data Available on Channel 3
;**                 ADC12_OR
;** 返 回 值: SET  : if the flag is set
;**           RESET: if the flag is clear
;**         
;** 作   者: lhl
;** 日   期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人: 
;** 日   期: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline FLAG_STATUS_T ADC12_GetFlagStatus (ADC12_FLAG_T flag)
{
  // check on the flag status and return set or RESET
  return ADC12_CSR & flag ? SET : RESET;
}

/*********************************************************************************************************
;** 函数名称:  ADC12_ConversionValue
;** 功能描述:  从ADC转换数据寄存器读取转换结果
;** 
;** 参    数:  adc12_channel :ADC通道编号
;**                          ADC12_CHANNEL0 : 读取 DATA0 寄存器
;**                          ADC12_CHANNEL1 : 读取 DATA1 寄存器
;**                          ADC12_CHANNEL2 : 读取 DATA2 寄存器
;**                          ADC12_CHANNEL3 : 读取 DATA3 寄存器
;** 返 回 值: 返回所选通道的转换结果
;**         
;** 作   者: lhl
;** 日   期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人: 
;** 日   期: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
inline UWORD16 ADC12_ConversionValue( ADC12_CHANNELS_T adc12_channel)
{
  // Only the 12 MSB of the DATAn Register are taken
  return *(volatile UWORD16 *)(ADC12_BASE + 8*(adc12_channel >> 4)) >> 4;
}

/*********************************************************************************************************
;** 函数名称: ADC12_ITConfig
;** 功能描述: 禁止或允许ADC中断
;** 
;** 参    数: new_status: ENABLE----允许ADC中断
;**                       DISABLE---禁止ADC中断
;** 返 回 值: 无
;**         
;** 作   者: lhl
;** 日   期: 2006年5月10日
;**-------------------------------------------------------------------------------------------------------
;** 修 改 人: 
;** 日   期: 
;**------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
void ADC12_ITConfig (CONFIG_STATUS_T new_status);

#endif  //EN_ARM_ADC12 > 0

    #ifdef __cplusplus
    }
    #endif


#endif  //__ADC12_H

/****************************************end of file*******************************************/

⌨️ 快捷键说明

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