📄 adc.c
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -