read_adc._c

来自「这是一个电池放电器」· _C 代码 · 共 67 行

_C
67
字号
#include <iom8v.h> //和单片机类型相对应的头文件,选择Atmega8做实验;
#include <macros.h>
#include "discharge.h"
#include <stdio.h>
#include "LCD_1602.h"

/*---------------------------------------------
       电池1温度测量程序
       最大测量温度:88度
       测量64次取平均数
----------------------------------------------*/
unsigned int T_BT1_T(void)
{
 unsigned char i;
 unsigned int a=0;
 unsigned int BT_T;//电池1温度
     i=read_adc(0,1);//第一次转换,不要
     for (i=0;i<1;i++)
		    {
			  a+=read_adc(0,1);//外部基准(2.048V),ADC1			 
			}
	  BT_T=(a>>0);
	  if(BT_T>65530)
	    BT_T=0;
		return BT_T;
}

/*---------------------------------------------
        电池1电压测量程序
        最大测量电压:4.096V
	    测量64次取平均数
----------------------------------------------*/
unsigned int  T_BT1_V(void)
{
 unsigned char i;
 unsigned int a=0;
 unsigned int BT_V;//电池1电压
 i=read_adc(0,0);//第一次转换,不要
     for (i=0;i<16;i++)
		    {
			  a+=read_adc(0,0);//外部基准(2.048V),ADC0			 
			}
	  BT_V=(a>>4)*3;
	  if(BT_V>65530)
	    BT_V=0;
		return BT_V;
} 

/*---------------------------------------------
        电池1电流测量程序
        最大测量电流:2.048A
        测量64次取平均数
----------------------------------------------*/
unsigned int T_BT1_I(void)
{
 unsigned char i;
 unsigned int a=0;
 unsigned int BT_I;//电池1电流
 i=read_adc(0,3);//第一次转换,不要
     for (i=0;i<16;i++)
		    {
			  a+=read_adc(0,3);//外部基准(2.048V),ADC3			 
			}
	  BT_I=(a>>4)*50/49;//衰减1.2倍 1.1*1.1=1.21
	   return BT_I;
}

⌨️ 快捷键说明

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