文章
博客 网店

 ATMega8 中断方式 A/D 转换测试程序



/********************************
  ATMega8 中断方式 A/D 转换测试程序
  文件名:main.c
  编译:WinAVR-20070122

  硬件环境:CA-M8X   打开的开关如下
            S6(1,2) - 外部4MHz晶振
            S1(7) - PC0连接电位器
            S5(5,6) - UART通信
  
  芯艺设计室 2004-2007  版权所有 
  转载请保留本注释在内的全部内容
  WEB: http://www.chipart.cn
  Email: changfutong@sina.com
*******************************/

#include 
#include 
#include 
#include 

static uint16_t g_nAdValue=0;    

void IoInit(void);

//AD转换完成中断
ISR(ADC_vect)
{
  g_nAdValue=ADCL;
  g_nAdValue|=(uint16_t)(ADCH<<8);    
}

int main(void)
{
  uint8_t i;
  
  //内部2.56V参考电压,0通道
  ADMUX=0Xc0;
  
  //使能ADC,中断允许,自由模式, 时钟:ck/8
  ADCSRA=_BV(ADEN)|_BV(ADIE)|_BV(ADFR)|_BV(ADPS1)|_BV(ADPS0);
  
  //标准输入/输出初始化,此函数在debugprint.c中实现
  IoInit();
  
  ADCSRA|=_BV(ADSC);//自由模式开始转换
  sei();
  
  while(1)
  {
    scanf("%c",&i);
    cli();
    printf("%d\n",g_nAdValue);
    sei();
  }
}

关于debugprint.c请参考上篇文章!
芯艺工作室    蒙ICP备06005492号
Copyright© 2004-2023 ChipArt Studio All Rights Reserved