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

📄 adc._c

📁 ATMEL AVR MEGA8 MCU DAC 驱动控制源代码
💻 _C
字号:
/******************************************/
/*           广州天河双龙电子公司         */
/*           http://www.sl.com.cn         */
/*              ADC驱动程序               */
/*           作者:ntzwq@wx88.net          */
/*              2002年5月11日             */
/*  目标MCU:MEGA8   晶振:外部(EXT) 8MHZ   */
/******************************************/
#include<iom48v.h>
unsigned int adc_rel;//AD转换结果
unsigned char adc_mux;//AD通道
extern unsigned int adc_old;
/*				微秒级延时程序	  		*/
void delay_us(int time)
	 {     
  	  do
	  	{
		 time--;
		}	
  	  while (time>1);
	 }	  
/*	  		    毫秒级延时程序			*/	 
void delay_ms(unsigned int time)
	 {
	  while(time!=0)
	  	  {		
		   delay_us(1000);
		   time--;
		  }
	 }		
//ADC初始化	 
void adc_init(void)
{
 DDRC=0x00;
 PORTC=0x00; 
 ADCSRA = 0x00; 
 ADMUX =(1<<REFS0)|(adc_mux&0x0f);//选择内部AVCC为基准
 ACSR  =(1<<ACD);//关闭模拟比较器
 ADCSRB=0;
 ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1) ;//64分频
}
//ADC完成中断
#pragma interrupt_handler adc_isr:22     
void adc_isr(void)
{
 static unsigned i;
 adc_rel+=ADC&0x3ff;
 ADMUX=(1<<REFS0)|(adc_mux&0x0f);//选择内部AVCC为基准
 ADCSRA|=(1<<ADSC);//启动AD转换
 if (i<63)
   i++;
 else
   {
    adc_old=adc_rel/64;//64点平均滤波
	i=0;
	adc_rel=0;
   }
}

⌨️ 快捷键说明

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