adc.c

来自「FM12864液晶驱动,单片机为ATMEGA48,GCC编译器开发,其中包含AD」· C语言 代码 · 共 32 行

C
32
字号

#include "atmega.h"
#include <avr/io.h>

#include <util/delay.h>
#include <avr/signal.h>
#include <avr/interrupt.h>
/*****************************************************/
unsigned int adc_data;
unsigned char adc_mark;
/*****************************************************/
void open_adc(unsigned char channel)
{
	if((channel<1)&&(channel>6))return;//超出通道范围则退出
	ADCSRA = channel | 0x88;//使能ADC,开ADC结束中断,选择通道
	ADMUX  = 0x00;//选择ADC0通道,结果右对齐
	DIDR0  = 0x01<<(channel - 1);//禁止数字缓冲器
	ADCSRA = ADCSRA | 0x40;//开始转换
}
/*****************************************************/
ISR(ADC_vect)
{
	unsigned char buffer1;
	unsigned char buffer2;
	buffer1 = ADCH;
	buffer2 = ADCL;
	adc_data = (buffer1<<8)+buffer2;
	adc_mark = 1;
}
/*****************************************************/

⌨️ 快捷键说明

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