AVR C

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Danish to

Threaded View
Hej

Nogle der hurtig kan fortælle hvad der er galt med denne ADC driver :

Jeg syntes den har kørt, men er ikke sikker, det er som at den læser ADC
værdien første gang og cacher den til alle de andre målinger jeg laver..
jeg syntes jeg har prøvet at disable og enable hele ADC'en etc, og tjekket
at den venter på flaget.. dog clear jeg interupt flaget lige inden jeg
starter den single conversion, men har prøvet et delay der.
og også prøvet at clear det efter end conversion. jeg debugger/flasher med
en JTAG...
Det er sikkert en lille fejl jeg bare ikke kan se lige nu :(
Kasper

unsigned int adc_meas(unsigned char channel)
{
timeout_type time_out=timeout_count;
unsigned int temp=0;
channel &= 0x07;
ADMUX = 0x40|channel; //0100-0xxx
ADCSRA = 0xD6; //1101-0110
while(!(ADCSRA&0x10))
{
if (!time_out++) // Time out, if transmission error occours
{
error(ADC_TIMEOUT); // execute error handler
return 0; // Exit recive rutine
}
}
temp = ADCH;
temp <<=8;
temp |= ADCL;
return temp;
}







Re: AVR C

Quoted text here. Click to load it

Heh... problem løst...

ADCL Skal læses før ADCH... *suk*

Kasper



Re: AVR C
Den Sun, 05 Jun 2005 22:25:59 +0200. skrev Repzak:


Quoted text here. Click to load it

Kommer du nogensinde ud af while løkken??
Det kan jo være at det kun er første gang og så bliver den hængende og
udlæser den gamle værdi.

--
Med venlig hilsen

Christian Treldal

Re: AVR C

Quoted text here. Click to load it

Jarp det gør den, der er også lavet timeout på den så den returnere 0 og
køre en error handler hvis den ikke skulle komme ud....

men som sagt problemet er løst...

Kasper



Site Timeline