• STM8S ADC初始化设置及应用


     
    //ADC通道号定义
    #define		ADC_Chanel0			(unsigned char)0x00
    #define		ADC_Chanel1			(unsigned char)0x01
    #define		ADC_Chanel2			(unsigned char)0x02
    #define		ADC_Chanel3			(unsigned char)0x03
    #define		ADC_Chanel4			(unsigned char)0x04
    #define		ADC_Chanel5			(unsigned char)0x05
    #define		ADC_Chanel6			(unsigned char)0x06
    #define		ADC_Chanel7			(unsigned char)0x07
    
    
    
    
    //*************************************
    // 函数名称:Init_AD
    // 函数功能:对AD初始化,开启或关闭ADC电路 
    // 入口参数:ADC电路使能参数
    // 出口参数:无
    /***************************************/
    void Init_AD(uint8 Mode)
    {
    		uint16 i  ;
    		
    		if(Mode == ENB)	//启动ADC电路
    		{							
    			// F/4 转换时间分频  Fadc = Fmaster/ADC_CR1[4..6]
    			// [000 F/2]  [001 F/3]  [010 F/4]			
    			ADC_CR1 = (ADC_CR1 & 0X8F) | 0X00 ;  	//f/2
    			// 数据左对齐
    			ADC_CR2 &=  ~0X08 ;		
    			// 启动ADC
    			ADC_CR1 |= 0X01 ;
    			// 等待AD电路稳定
    			for(i=0;i<500;i++) ;
    			
    			ADC_CSR &= ~0X80 ;		//转换结束标志清0
    			
    			return ;
    		}
    		else
    		{
    			ADC_CR1 &= ~0X01;	//关闭ADC电路
    			return ;						
    		}
    }
    
    
    //*************************************
    // 函数名称:AdcSwitch
    // 函数功能: 在单通道模式下转换某一通道的AD值
    //					 在(扫描模式下)连续转化1-Chanel的AD值
    // 入口参数:要转换的AD通道号
    // 出口参数:无
    /***************************************/
    void AdcSwitch(uint8 Chanel)
    {
    		//选择转换通道
    		ADC_CSR = (ADC_CSR & 0XF0) | Chanel;		
    		// 启动ADC
    		ADC_CR1 |= 0X01 ;
    		//等待转换
    		while(!(ADC_CSR & 0X80));
    		ADC_CSR &= ~0X80 ;				
    
    		return ;
    }
    
    //*************************************
    // 函数名称:Adc_Mode_Scan
    // 函数功能: ADC扫描模式设置函数				 
    // 入口参数:扫描模式开启参数
    // 出口参数:无
    /***************************************/
    void Adc_Mode_Scan(uint8 Value)
    {
    	if(Value == ENB)
    	{
    		ADC_CR2 |=  0X02 ;
    	}
    	else
    	{
    		ADC_CR2 &=  ~0X02 ;
    	}
    }
    
    
    //---应用实例-----
    	//ADC初始化设置	
    	Init_AD(ENB);	//初始化ADC电路并开启电路
    //		Adc_Mode_Scan(OFF) ;//ADC扫描模式使能
    	
    	//ADC 转换	
    	AdcSwitch(ADC_Chanel3) ;//转换通道3
    	TmpH = ADC_DRH ;	//取转换结果
    	TmpL = ADC_DRL ;	
    
    


  • 相关阅读:
    mysql decimal(10,2)对应java类型
    idea maven 配置spring boot dev-tools热部署
    在CentOS 8上安装Java 11(OpenJDK 11)和Java 8(OpenJDK 8)的方法
    关于mybatis-plus中Service和Mapper的分析
    Springboot测试类之@RunWith注解
    Get bit field from buffer as an integer / Set bit field in buffer from an integer
    A generic doubly linked list implementation
    Array helper
    Base64 Encoding/Decoding
    ffmpeg color_table[]
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3214882.html
Copyright © 2020-2023  润新知