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

📄 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        : ADC12 functions prototypes********************************************************************************* History:*  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 = 0x01,  ADC12_DA1 = 0x02,  ADC12_DA2 = 0x04,  ADC12_DA3 = 0x08,  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        : Intialize the ADC* Input              : None.* Return             : None.*******************************************************************************/void ADC12_Init(void);/******************************************************************************** Function Name      : ADC12_ConversionStart* Description        : start the Conversion.* Input              : None* Return             : None*******************************************************************************/INLINE void ADC12_ConversionStart (void){  // Set the ADCen bit of the bootconf register  PCU->BOOTCR |= ADC12_Start_Mask;}/******************************************************************************** Function Name      : ADC12_ConversionStop* Description        : Disable the ADC* Input              : None.* Return             : None.*******************************************************************************/INLINE void ADC12_ConversionStop(void){  // Clear the ADCen bit of the bootconf register  PCU->BOOTCR &= ~ADC12_Start_Mask;}/******************************************************************************** Function Name      : ADC12_ModeConfig* Description        : Configure 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[6]  ADC12->CSR= ConversionMode == ADC12_SINGLE ? ADC12->CSR | ADC12_Mode_Mask :\                                               ADC12->CSR & ~ADC12_Mode_Mask;}/******************************************************************************** Function Name      : ADC12_PrescalerConfig* Description        : Configure the prescaler* Input              : Adc12_clk: Sampling frequency.* Return             : None.*******************************************************************************/void ADC12_PrescalerConfig(u32 Adc12_clk);/******************************************************************************** Function Name      : ADC12_ChannelSelect* Description        : 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        : 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 clear*******************************************************************************/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

⌨️ 快捷键说明

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