ATMega8 中断方式 A/D 转换测试程序
来源: 芯艺工作室
本站广告
  ENC28J60+uIP DHCP动态获取IP及UDP广播服务端示例
  ENC28J60+uIP 基于TCP的MODBUS IO示例
  C720H5上实现MODBUS远程IO
  ENC28J60+uIP HTTP GET方式将温度数据上传到web服务器
  FM1702读写S50(也叫M1)卡相关资料


/********************************
  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 <avr/io.h>
#include <avr/interrupt.h>
#include <stdio.h>
#include <stdint.h>

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请参考上篇文章!


声明:芯艺工作室(http://www.chipart.cn)保留所有权力,转载请注明出处!

芯艺工作室    蒙ICP备06005492号

Copyright© 2004-2020 ChipArt Studio All Rights Reserved