ad.c

来自「单片机模数转换程序」· C语言 代码 · 共 45 行

C
45
字号
#include <avr/io.h>
#include <avr/signal.h>
#include <avr/interrupt.h>
#include <avr/delay.h>
#include <avr/pgmspace.h>

#ifndef cbi 
        #define cbi(reg,bit)        reg &= ~_BV(bit)
#endif 

#ifndef sbi 
        #define sbi(reg,bit)        reg |= _BV(bit)
#endif

	uint16_t temp1=0;
	uint16_t temp2=0;
	uint16_t temp3=0;
	uint16_t ADVALUE=0;


uint16_t ADC_CONVER(void)
{
	temp1=(uint16_t)ADCL;
	temp2=ADCH<<8;
	temp3=temp2+temp1;
	return(temp3);
}



main()
{
	
	ADMUX=0xc0;//外部参考源,0通道
while(1)
{
	ADCSRA=_BV(ADEN)|_BV(ADPS0)|_BV(ADPS1)|_BV(ADPS2);//使能ADC,单次转换模式
	ADCSRA|=_BV(ADSC);//启动ADC转换
	//while(ADCSRA&_BV(ADSC));
	//_delay_loop_2(5);
	ADVALUE=ADC_CONVER();
	//for(uint8_t i=0;i<31;i++)
  //_delay_loop_2(30000);//延时0.5秒
}
}

⌨️ 快捷键说明

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