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

📄 adc12.h

📁 freemodbus-v1-1-1-0.zip v1.1.1版本的代码 支持多个平台
💻 H
字号:
/******************** (C) COPYRIGHT 2003 STMicroelectronics ********************* File Name          : adc12.h* Author             : MCD Application Team* Date First Issued  : 07/31/2003* Description        : This file contains all the functions prototypes for the*                      ADC12 software library.********************************************************************************* History:*  13/01/2006 : V3.1*  24/05/2005 : V3.0*  30/11/2004 : V2.0*  14/07/2004 : V1.3*  01/01/2004 : V1.2******************************************************************************* THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.*******************************************************************************/#ifndef _ADC12_H#define _ADC12_H#include "71x_map.h"#include "rccu.h"/* --------------------ADC12 Conversion modes----------------------------------- */typedef enum{  ADC12_SINGLE,  ADC12_ROUND} ADC12_Modes;/* --------------------ADC12 Channels------------------------------------------- */typedef enum{  ADC12_CHANNEL0 = 0x00,  ADC12_CHANNEL1 = 0x10,  ADC12_CHANNEL2 = 0x20,  ADC12_CHANNEL3 = 0x30} ADC12_Channels;/* --------------------ADC12 control status register flag----------------------- */typedef enum{  ADC12_DA0 = 0x0001,  ADC12_DA1 = 0x0002,  ADC12_DA2 = 0x0004,  ADC12_DA3 = 0x0008,  ADC12_OR  = 0x2000} ADC12_Flags;/* Masks for the update of interrupt bit for channel n */#define ADC12_IT0_Mask   0x0100#define ADC12_IT1_Mask   0x0200#define ADC12_IT2_Mask   0x0400#define ADC12_IT3_Mask   0x0800/* Mask for the update of all the interrupt bit in the CSR */#define ADC12_IT_Mask    0x0F00/* Mask for Selecting mode */#define ADC12_Mode_Mask  0x0040/* Mask for configuring the converter */#define ADC12_Start_Mask 0x0020/******************************************************************************** Function Name      : ADC12_Init* Description        : This routine is used to intialize the ADC12 registers to *                      their reset values * Input              : None.* Return             : None.*******************************************************************************/void ADC12_Init(void);/******************************************************************************** Function Name      : ADC12_ConversionStart* Description        : This routine is used to launch the Conversion.* Input              : None* Return             : None*******************************************************************************/inline void ADC12_ConversionStart (void){  /* Set the ADCen bit of the BOOTCR register */  PCU->BOOTCR |= ADC12_Start_Mask;}/******************************************************************************** Function Name      : ADC12_ConversionStop* Description        : This routine is used to disable the ADC12 cell.* Input              : None.* Return             : None.*******************************************************************************/inline void ADC12_ConversionStop(void){  /* Clear the ADCen bit of the BOOTCR register */  PCU->BOOTCR &= ~ADC12_Start_Mask;}/******************************************************************************** Function Name      : ADC12_ModeConfig* Description        : This routine is used to select the mode of conversion.* Input              : ADC12_SINGLE: Single channel mode*                      ADC12_ROUND : Round robin mode* Return             : None*******************************************************************************/inline void ADC12_ModeConfig (ADC12_Modes ConversionMode){  /* Select the mode of conversion and update the CSR */  ADC12->CSR= ConversionMode == ADC12_SINGLE ? ADC12->CSR | ADC12_Mode_Mask :\                                               ADC12->CSR & ~ADC12_Mode_Mask;}/******************************************************************************** Function Name      : ADC12_PrescalerConfig* Description        : This routine is used to configure the prescaler register.* Input              : Adc12_clk: Sampling frequency in Hz.* Return             : None.*******************************************************************************/void ADC12_PrescalerConfig(u32 Adc12_clk);/******************************************************************************** Function Name      : ADC12_ChannelSelect* Description        : This routine is used to select the channel passed as *                      parameter to be converted.* Input              : ADC12_Channel: channel selected to be converted it may be*                      ADC12_CHANNEL0 : select channel 0*                      ADC12_CHANNEL1 : select channel 1*                      ADC12_CHANNEL2 : select channel 2*                      ADC12_CHANNEL3 : select channel 3* Return             : None*******************************************************************************/inline void ADC12_ChannelSelect(ADC12_Channels ADC12_Channel){  /* Update the CSR by the value of the selected channel */  ADC12->CSR |= ADC12_Channel;}/******************************************************************************** Function Name      : ADC12_FlagStatus* Description        : This routine is used to test if the flag passed in parameter is set or not* Input              : 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  :Overrun* Return             : SET: if the flag is set*                      RESET: if the flag is cleared*******************************************************************************/inline FlagStatus ADC12_FlagStatus (ADC12_Flags flag){  /* Test on the flag status and return set or RESET */  return ADC12->CSR & flag ? SET : RESET;}/******************************************************************************** Function Name      : ADC12_ConversionValue* Description        : Read the conversion result from the data register.* Input              : ADC12_Channel :number of the register to read*                      ADC12_CHANNEL0 : read the DATA0 register*                      ADC12_CHANNEL1 : read the DATA1 register*                      ADC12_CHANNEL2 : read the DATA2 register*                      ADC12_CHANNEL3 : read the DATA3 register* Return             : the register value of the channel converted*******************************************************************************/inline u16 ADC12_ConversionValue( ADC12_Channels ADC12_Channel){  /* Clear the corespondent DA bit */  ADC12->CSR &= ~(1<<(ADC12_Channel >> 4));  /* Only the 12 MSB of the DATAn Register are taken */  return *(u16 *)(ADC12_BASE + (ADC12_Channel >> 1)) >> 4;}/******************************************************************************** Function Name      : ADC12_ITConfig* Description        : enable or disable the interruption* Input              : status=ENABLE=>enable interrupt*                      status=DISABLE=>disable interrupt* Return             : None*******************************************************************************/void ADC12_ITConfig (FunctionalState NewState);#endif /* _ADC12_H */

⌨️ 快捷键说明

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