Hi epilot,
you piqued my curiosity re. using vref to offset the ADC. Its limited by the requirment that Vref+ min is 2volts. Using a voltage divider 10k to gnd and 15k to Vdd (5volts). Pin 5 (AN3) goes to the divider. The only software change is to add ADCON1 = %00000001 after ADCON0 is set (note the missing binary sign - by shear luck in this case it works without the %) That gets you 2.5 gain - if my maths is right, which would be unusual because I'm rubbish at maths.
The other way to get more gain is to multiply CANAL by some constant
Now you can adjust the gain on the fly by detecting when it clips and changing constant to a variable. I think I may have suggested in an earlier post that you should divide the ADC output, D'oh (spelling according to Wiki). I think you'll still need some gain on the input.Code:BARRA: IF MARCA1 = 1 THEN 'Si es verdadero LINEA = $2 ADCIN 7, CANAL CANAL = CANAL * 4 MARCA1 = 0 '1ºLinea LCD, muestra canal L ELSE 'Si no lo es LINEA = $c0 ADCIN 6, CANAL CANAL = CANAL * 4 MARCA1 = 1 '2ºLinea LCD, muestra canal R ENDIF
Hey, I just realised, the ADC in a 877a is 10 bits but CANAL is only a byte, it's throwing away 2 msb's.
George
George




Bookmarks