i need help i wrote dies small code for a test conversion of my power supply (5V) i try to see it on debugger Mode in AD convert 0;
this function is for the conversion :
AD0CR |=0x00000000;// AD convertion start
while(AD0DR & 0x80000000 )==0; // conversion complet
return ((AD0DR&0x03FF)>>6);
in my main function how schould i write to see the result of the conversion in AD0 convert Window in debugger Mode i wrote this but didn´t function
int main () { adc_init(); unsigned int result; while(1) { result= adc_read; } } the problem are: is my conversion code o.k? is my main function o.k ; so that i can bekomme 1024 (5v) in my AD convert window?
i use LPC2368, ARM7 thx for a helping code or suggestion
It really was your intention???
Are you aware of the difference between the following two constructs?
return (AD0DR&0x03FF)>>6;
return (AD0DR>>6)&0x03FF;
my intention is to take the result of the conversion and give it out !
what is the difference between :return(AD0DR&0x03FF)>>6; and return(AD0DR>>6)&0x03FF; ??
If you have no other tools available to tell you the difference between the two statements, you could use a pen and paper.
This really is very basic programming skills. That's like talking about math and not understanding the difference between (2+3)*4 or 2+(3*4).
o.k thkx in this case it mean the same
because (AD0DR&0x03FF) choose the right channel(in my case ch 0).... >> shiftihng it to right 6 place of 10 Bit value;
or AD0DR>>6; first shifting and choose the right channel (AD0DR>>6)&0x03FF
can you please have a complet code For an AD- Convert (ad_init(); ad_read(); the main function to managed and view the result of the convertion) it will be so helpfull
Thx Webmaster
i forgot with ARM; LPC23XX
thx
The compiler - and the processor - does not agree with you that the two statements would mean the same.
val = 0x12345678; a = (val & 0x3ff) >> 6; b = (val >> 6) & 0xff;
The end result?
a will extract 0x278 and shift 6 steps right. End result 9.
b will shift 6 steps right which gives 0x48d159. Then mask and get 0x159.
Only one of these two expressions will correctly pick up the 10 bits of ADC measurement from the data register and make the measurement available as a number between 0 and 1023.