salut mes amis .
je suis entrain de réaliser un programme qui me permet de mesurer une tension qui varie de 0 à 5V.
mais le problème que j'avais c'est qu'il affiche un valeur moitié .
c'est à dire si j'ai 3v il affiche 1.52.
voici mon programme :
ConversionAN
; initialisation
call LCD_CLEAR
BSF STATUS, RP0 ; Bank 1 selectonnee
MOVLW b'00001110' ; select RA0
MOVWF ADCON1 ; as analog inputs
BCF STATUS, RP0 ; Bank 0 selectonnee
MOVLW b'10000001' ; Select; RC osc, Ch2
MOVWF ADCON0 ; turn on A/D
Convert CALL Wait50µs ; provide necessary samplig time
BSF ADCON0, 2 ; Start new A/D conversion
loop
BTFSC ADCON0,2 ; A/D over ?
GOTO loop ; no then loop
CALL LCD_LOCATE_LINE0
MOVF ADRESH, W
CALL LCD_SEND_DECI ; print high bit of the result
CALL LCD_PRINT_SPACE
CALL LCD_PRINT_SPACE
MOVLW "V"
CALL LCD_SEND_CHAR
GOTO Convert ; boucle
aussi comment je peux multiplier cette valeur , car j'ai essayer par ajouter la mème valeur c'est à dire faire une addition de mème valeur .
mais il a marché pour les valeurs de 0 à 2.5 V
pour les autres ça va pas car il m'affiche des valeurs de 000 à 255.
qui peut m'aider à resoudre ces problèmes merci.
-----