ad.c

来自「AVR 门锁的程序 包含与模块通讯 密码按键」· C语言 代码 · 共 53 行

C
53
字号
#include "Include.h"


//得到电源电压
unsigned char GetVoltage(void)
{
	unsigned char i=0;
	unsigned int t=0;

	ADMUX=0x04;//选择ADC通道4
	ADMUX|=(1<<ADLAR);//结果左对齐
	ADMUX|=(1<<REFS1)|(1<<REFS0);//选择基准源2.56V

	ADCSRA|=(1<<ADEN);//使能ADC
	ADCSRA|=(1<<ADIE);//使能ADC中断
	sei();

	//抛弃n次结果
	for(i=0;i<5;i++)
	{
		set_sleep_mode(SLEEP_MODE_ADC);
		sleep_mode();//进入ADC降噪模式
	}

	//平均n次结果返回
	for(i=0;i<10;i++)
	{
		set_sleep_mode(SLEEP_MODE_ADC);
		sleep_mode();//进入ADC降噪模式
		t=t+ADCH;
	}


	ADCSRA&=0x7F;//关闭ADC
	return (unsigned char)(t/10);
}

SIGNAL(SIG_ADC)
{
}

void LowVolageShow(void)
{
	if(GetVoltage()<LOLTAGE_LOW)
	{
                DelayNmS(20);
	        if(GetVoltage()<LOLTAGE_LOW)
	        {
                        LedRedAction2();
        	}
	}
}

⌨️ 快捷键说明

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