⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adc.c

📁 我自己编写的atmega16的adc的范例
💻 C
字号:
#include<iom16v.h>
#include<macros.h>
#define AVCC                (1<<REFS0)
#define V_2.56              (1<<REFS0)|(1<<REFS1)
#define AD_PRESCAL_2        (1<<ADPS0)
#define AD_PRESCAL_4        (1<<ADPS1)
#define AD_PRESCAL_8        (1<<ADPS0)|(1<<ADPS1)
#define AD_PRESCAL_16       (1<<ADPS2)
#define AD_PRESCAL_32       (1<<ADPS0)|(1<<ADPS2)
#define AD_PRESCAL_64       (1<<ADPS1)|(1<<ADPS2)
#define AD_PRESCAL_128      (1<<ADPS0)|(1<<ADPS2)|(1<<ADPS1)
#define AD_SE_ADC0                   //ADC0
#define AD_SE_ADC1          (1<<MUX0) //ADC1
#define AD_SE_ADC2          (1<<MUX1) //ADC2
#define AD_SE_ADC3          (1<<MUX1)|(1<<MUX0) //ADC3
#define AD_SE_ADC4          (1<<MUX2)//ADC4
#define AD_SE_ADC5          (1<<MUX2)|(1<<MUX0)//ADC5
#define AD_SE_ADC6          (1<<MUX2)|(1<<MUX1) //ADC6
#define AD_SE_ADC7          (1<<MUX2)|(1<<MUX1)|(1<<MUX0) //ADC7
//========================================  
//数字转到字串,函数.--只有4个字节,而且向后对齐,前面补零. 
void MyItoa( unsigned int  Inter, unsigned char Dat[]) 
{ 
    unsigned char i; 
    for ( i=0; i<4 ; i++ ) 
    { 
        Dat[3-i]=Inter%10+'0'; 
        Inter/=10; 
    }  
} 
void ADC_initial(void)
{
 ADMUX=AVCC;
 ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADATE)|AD_PRESCAL_4;
}
unsigned int ADC_READ()
{
 unsigned char temp;
 unsigned int data;
 temp=ADCL;
 data=ADCH;
 data<<=8;
 data+=temp;
 return(data);
}

⌨️ 快捷键说明

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