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;