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

📄 adc.c

📁 MAX197 ADC程序,用在一个项目上的,思想很清晰
💻 C
字号:
#include <absacc.h>
#include "OS_GLB.h"



uint  VoltageData=0, CurrentData=0;
uchar DataBufCH0[2], DataBufCH1[2];

/***************************************************************
*FUNCTION NAME :Read_ADC
*CREATE DATE   :2007-8-10
*CREATE BY     :lxq
*FUNCTION      :Read 12bit AD convert data from AD converter
*MODIFY DATE   :
*INPUT         :none
*OUTPUT        :
*RETURN        :1:success  -1:failure
***************************************************************/
void Read_ADC(void)
{
	uchar  i = 0;
	static char ADC_State = 0;

	switch( ADC_State )
	{
    case 0:
    			MAX197 = 0x50;                         //向MAX197的控制字寄存器写入控制字0X50,测量通道为0号通道;
      		ADC_State++;
      		break;
      
    case 1:
      		if( ADIRQ_CON != 0 )                   //acquisite  voltage
      		{
        		ADData_CON = 0;
        		break;
      		}
      		DataBufCH0[1] = MAX197;                //先读0号通道的低8位
      		ADData_CON = 1;
      		DataBufCH0[0] = MAX197&0x0F;           //再读0号通道的高4位
      		ADData_CON = 0;      
      		VoltageData = (uint)( ((DataBufCH0[0]*256+DataBufCH0[1])*10/4096)*10 ); 
      		ADCData[2] = (uchar)VoltageData;      
      		ADC_State++;      		
      		break;
    
    case 2:  
      		MAX197 = 0x50;                     //向MAX197的控制字寄存器写入控制字0X51,测量通道为1号通道;
      		ADC_State++;
      		break;
      
    case 3:  
      		if( ADIRQ_CON )                    //acquisite  current
      		{        		
        		ADData_CON = 0;        		
        		break;
      		}      		
          ADData_CON = 0;
      		DataBufCH1[1] = MAX197;            //先读1号通道的低8位
      		ADData_CON = 1;
      		DataBufCH1[0] = MAX197&0x0F;       //再读1号通道的高4位
      		ADData_CON = 0;      
      		CurrentData = (uint)( ((DataBufCH1[0]*256+DataBufCH1[1])*10/4096)*10 );
      		ADCData[0] = (uchar)( CurrentData/256 );
      		ADCData[1] = (uchar)( CurrentData%256 );
      		if( CurrentData )
      		{
      			Save_Flag = 1;
      		}      		
      		ADC_State++;
      		break;
	  
	  default :
	  			ADC_State = 0;
	  			break;
  }	
}

⌨️ 快捷键说明

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