We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
First, I thank keil.com for this forum...
I am using C515C, and I connected it to an LCD.
When I convert an analog signal coming from P6.1 to 8 bit, the output is right.
But when I convert the signal to 10 bit resolution, at the program execution reaches the conversion function it goes back to the start of the program...!! I feel that the problem is in using the "unsigned int " for the 10 bit.. Could you help me please...
----------------------------------------------- The program (8 bit conversion) -working fine-
unsigned char kk; . . void main() { . . ADC_vStart(0,1); kk = ADC_ubRead8BitConv(); . . }
---------------------------------------------- The program (10 bit conversion) -NOT Working-
unsigned int kk; . . void main() { . . ADC_vStart(0,1); kk = ADC_ubRead10BitConv(); . . } ---------------------------
Are you sure that you correctly reconfigured everything to support 10-bit data?
Maybe you left something at 8 bits, and it's crashing because you're feeding it 10 (or 16) bits...
As Per suggested, single-stepping would show you what's going on...
ok,, this is the function...
#define uword unsigned int
uword ADC_uwRead10BitConv(void) { uword tmp = 0;
tmp = ADDATH;
tmp <<= 8;
tmp |= ADDATL;
tmp >>= 6;
return(tmp);
}
and..
sfr ADDATH = 0xD9;