AVR C

Jun 05, 2005 3 Replies

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


Heh... problem løst...

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

Kasper

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

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

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

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required