📄 adc12.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 + -