?? adc.c
字號:
#include <avr/io.h>
#include <avr/interrupt.h>
#include "adc.h"
#include "key.h"
#define MaxAdcBufSize 9
#define AdcBufStep 3
static volatile unsigned int ADCBuffer[MaxAdcBufSize];
/********************************************************
ADC初始化
********************************************************/
void InitADC(void)
{
ADMUX |= (1<<REFS1)|(1<<REFS0);
ADCSRA |= (1<<ADEN)|(1<<ADSC)|(1<<ADATE)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);
//ADC使能;ADC開始轉換;連續轉換;中斷使能;128分頻
}
/********************************************************
讀取ADC
********************************************************/
unsigned int ReadADC(void)
{
return ADCBuffer[0];
}
/********************************************************
ADC轉換完成中斷
********************************************************/
SIGNAL(SIG_ADC)
{
unsigned char i;
unsigned int tmp,sum = 0;
tmp = ADC;
for(i=1;i<MaxAdcBufSize - 1;i++)
{
ADCBuffer[i] = ADCBuffer[i+1];
sum += ADCBuffer[i];
}
ADCBuffer[MaxAdcBufSize - 1] = tmp;
sum += ADCBuffer[MaxAdcBufSize - 1];
ADCBuffer[0] = (sum >> AdcBufStep);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -