˜Ë(bi¨¡o)î}: avr†ÎƬ™C(j¨©)mega32Ö®ADC³ÌÐò [´òÓ¡±¾í“(y¨¨)]

×÷Õß: aabbcc    •r(sh¨ª)ég: 2014-11-11 22:50
˜Ë(bi¨¡o)î}: avr†ÎƬ™C(j¨©)mega32Ö®ADC³ÌÐò
²éÊÖƒÔ(c¨¨)£¬Œ‘³ÌÐò£¬ÓІ–(w¨¨n)î}ÔÙÓ‘Õ“

*****************************************************************
//CPU:mega32
//¾Ž×gÆ÷£ºiar

#include <ioavr.h>
#include "adc.h"
int main(void)
{
        int m;
adc_init();     
        m = adc_get(0);
        m=m;
while(1);
}
void adc_init(void)
{
ADMUX = 1<<REFS0 | 0<<ADLAR ;//…¢¿¼ëŠÔ´£ºAVcc    ÓÒŒ¦(du¨¬)ýR  
ADCSRA = 1<<ADEN  | 7;//adcʹÄÜ  128·Öîl
SFIOR = SFIOR & 0X1F | 0<<5;//ßBÀm(x¨´)×ÔÓÉÞD(zhu¨£n)“Q
}
int adc_get(char channel)
{
  int n;
    if (channel > 7  && (ADMUX & 0x1f) <= 7 )
  {
    ADMUX = ADMUX & 0xE0 | channel;//ßx“ñͨµÀ
    for(i=300;i>0;i--);//ÞD(zhu¨£n)“Qžé²î·ÖͨµÀ ÐèÒª125usÑÓ•r(sh¨ª)£¡£¡
  }
  else
    ADMUX = ADMUX & 0xE0 | channel;//ßx“ñͨµÀ
  ADCSRA |= 1<<ADSC;            //é_ʼÞD(zhu¨£n)“Q
  while(  ADCSRA & (1<<ADSC)  );//µÈ´ýÍê®…
  n = ADCL;
  n = n & 0x00ff | ADCH<<8 ;
  return n;
}


×÷Õß: qq411343864    •r(sh¨ª)ég: 2016-3-1 16:12
Õˆ(q¨«ng)†–(w¨¨n)˜ÇÖ÷Œ‘mega32³ÌÐòÓÃʲôܛ¼þ




šgÓ­¹âÅR (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1