hi t,I do I work with more than 8-bit numbers in assembly. e.g i want to read and manipulate a 10-bit ADC result.
I know variable type int will hide everything for me in C.
i'm just going thru Nigels tutorials, i'll pop back if i can't get something clearlyhi t,
PICList on the web has lots of 16 and 32 bit Math subr also look thru Nigels tutorials, link near my signature.
Any specific maths subr that you require.?
PIC Microcontoller, PIC Math Methods
Read_ADC
bsf ADCON0, GO_DONE ;initiate conversion
btfsc ADCON0, GO_DONE
goto $-1 ;wait for ADC to finish
movf ADRESH,W
andlw 0x03
movwf NumH
BANKSEL ADRESL
movf ADRESL,W
BANKSEL ADRESH
movwf NumL ;return result in NumL and NumH
return
v_in = v_ref x adc/1023
Assuming a 5Vref and say 2.5VinputI can see how to initialize and make the ADC run( and reading the result)
v_in = v_ref x adc/1023[/CODE]
the procedure you are telling is very clear with one exception(how do i insert the decimal?).Assuming a 5Vref and say 2.5Vinput
V = 5 * [512/1023] = 5 * 0.5 = 2.5V
So do the 512/1023 part first, as you need to avoid decimals, multiply the 512 by say 100.
This gives 51200/1023, which can be done with unsigned integer math subr, yields 50 as a integer result.
Now multiply this result by 5 [Vref] to give 250
When you display the result, insert a decimal point between the 2 and 5, so you display 2.50V.
If you require a higher resolution, multiply the 512 by 1000.
OK.?