在线咨询 切换到宽版
eetop公众号 创芯大讲堂 创芯人才网

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
查看: 2402|回复: 1

avr ad

[复制链接]
发表于 2006-8-22 09:08:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
#include <iom16v.h>
#include <macros.h>
#include <eeprom.h>
#include        <pgmspace.h>

#include <stdio.h>
#include <float.h>
#include <string.h>

#pragma interrupt_handler dc_1:iv_ADC


unsigned char recive_buff[4];
unsigned int temp;

void dc_1(void);

unsigned int read_adc(unsigned char adc_input)//查询方式读取ADC单端通道
   {
      ADMUX=(0x40|adc_input); //adc_input:单端通道 0x00~0x07,0x1E,0x1F
      //0xc0:选择内部2.56V参考电压
      ADCSRA|=(1<<ADSC); //启动AD转换
      //loop_until_bit_is_set(ADCSRA,ADIF); //方法1 等待AD转换结束
       while ((ADCSRA&(1<<ADIF))==0); //写法2 这种写法优化不好
      // loop_until_bit_is_clear(ADCSRA,ADSC); //方法2 检测ADSC=0也行
      ADCSRA|=(1<<ADIF); //写1清除标志位
      return ADC; //ADC=ADCH:ADCL
   }

void main(void)
{
  // MCUCR = 0x08;   //下降沿触发
  // GICR = 0X80;    //INT1 使能

  // UBRRH = 0;      //波特率为 9600
  // UBRRL = 51;

  // UCSRA = 0x20;
  // UCSRB = 0x08;   //容许接受和发送
  // UCSRC = 86;      //祯格式为8,1


   PORTA=0;
   ADCSRA=(1<<ADEN)|0x06; //使能ADC,时钟64分频 125KHz@8MHz system clock
   SEI(); //使能全局中断


    while(1)
        {
            temp=read_adc(0);
                temp=temp;
        }
}

void dc_1(void)
{
  temp=ADCL;
}


void delay(unsigned int ms)
{
   unsigned int i,j;
   for(i=0;i<ms;i++)
   {
      for(j=0;j<2000;j++)
          ;
   }

}
发表于 2009-2-12 12:54:09 | 显示全部楼层
3x~~~~~~~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版| 小黑屋| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-6-12 18:50 , Processed in 0.152863 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表