BaroneRosso.it - Forum Modellismo

BaroneRosso.it - Forum Modellismo (https://www.baronerosso.it/forum/)
-   Circuiti Elettronici (https://www.baronerosso.it/forum/circuiti-elettronici/)
-   -   Convertitore Analogico Digitale (https://www.baronerosso.it/forum/circuiti-elettronici/206605-convertitore-analogico-digitale.html)

faustog_2 05 maggio 11 12:13

ok ok ok
 
ciao carissimo MSchiepp scusa il RITARDONE !!!

da tenere prsente che il bit 7 di ADCON1 = 1 quindi giustificazione a destra
ecco il condice:

Read_ADC
bsf ADCON0, GO_DONE
btfsc ADCON0, GO_DONE
goto $-1

movf ADRESH,W
andlw 0x03
movwf ValoreH
BSF STATUS,RP0
movf ADRESL,W
BCF STATUS,RP0
movwf ValoreL ;return result in NumL and NumH
return

Grazie
fausto


Citazione:

Originalmente inviato da MSchiepp (Messaggio 2540550)
Ti confermo che stai leggendo solo il registro ADSRH!!
Se vuoi mandami il codice che gli dò un'occhiata.

Michele


faustog_2 05 maggio 11 20:15

ok
 
oggi nn posso perchè non posso
alla prima occasione ti ivnio tutto il codice... anche se in realtà la parte che riguarda ADCON0, e ADCON1 è perfetta , uso come riferimento la tensione che ho sul Mikro, poi uso il clock interno per il campionamento... e cos'altro dire?

ho messo un potenziometro da 10 kohm

grazie come sempre gentilissimo


Citazione:

Originalmente inviato da faustog_2 (Messaggio 2573018)
ciao carissimo MSchiepp scusa il RITARDONE !!!

da tenere prsente che il bit 7 di ADCON1 = 1 quindi giustificazione a destra
ecco il condice:

Read_ADC
bsf ADCON0, GO_DONE
btfsc ADCON0, GO_DONE
goto $-1

movf ADRESH,W
andlw 0x03
movwf ValoreH
BSF STATUS,RP0
movf ADRESL,W
BCF STATUS,RP0
movwf ValoreL ;return result in NumL and NumH
return

Grazie
fausto


faustog_2 07 maggio 11 01:20

Ok Funziona!!!
 
CIAO msCHIEPP...

non mi chiedere perchè , ma stasera dopo tanto tempo che non ci mettevo le mani, funziona, adesso mi accende 10 led, come numerazione binaria.
Adesso voglio andare avanti provando prima a gestire pseudo parallelamente due porte analogiche.. poi vorrei fare esperimenti usanto Vref diversi da quello del Pic..

Insomma pian pian mi allargo le conoscenze..

bene per il momento ecco il sorgente per la letura a 10 bit da una porta analogica, il bello che questo è molto simile per la serie 18F ..insomma messo a segno questo targhet. in futuro potrò sfruttare al meglio i sensori:


;************************************************* *
; Analog_1024.asm
;
; fausto.giudice@gmail.com
;************************************************* *

PROCESSOR 16F876
RADIX DEC
INCLUDE "P16F876.INC"

__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _HS_OSC & _WRT_ENABLE_OFF & _LVP_OFF& _DEBUG_OFF & _CPD_OFF

cblock 0x20
L_CONT
H_CONT
SELREG
AN0_
AN1_
NumH
NumL
endc
;
; __________________________________________________ ________________________
;
; START PROGRAM
; ------------------------------------
ORG 0
;
;================================================= =====================
; Set Analog Port for RA0
;================================================= =====================
;
BSF STATUS,RP0 ; * SELECT BANK 1 *

; - Set ADCON1 register
MOVLW b'10000000' ; 0 > giustificazione a sinistra
MOVWF ADCON1
; 000 > - nessun significato
; 0000> tutte porte digitali di PORTA
; Vref+ = Vdd, Vref- = GND
BCF STATUS,RP0 ; * SELECT BANK 0 *
BCF STATUS,RP1

; - Set ADCON0 register
MOVLW b'11000001' ; 11 > velocità campionamento = clock interno
MOVWF ADCON0 ; 000 > RA0, 001 RA1, 010 RA2, 011 RA3, 100 RA4
; 0 > GO/DONE (SE = 1 AVVIA CONVERTITORE)
; 0 > - nessun significato
; 1 > convertitore attivo pronto per l'uso
;
;================================================= =====================
; Set Input and Output Port
;================================================= =====================
;
BSF STATUS,RP0 ; * SELECT BANK 1 *

MOVLW b'00000000' ; RC7/RX entrata seriale
MOVWF TRISC ; RC6/TX uscita seriale


MOVLW b'00011111'
MOVWF TRISA ; Set RA<3:0> as input RA<5:4> as output

movlw b'00000000'
MOVWF TRISB

;
;================================================= =====================
; MAIN LOOP
;================================================= =====================
;
MAIN
BCF ADCON0,3 ; --
BCF ADCON0,4 ; ** --
BCF ADCON0,5 ; ** --
BSF ADCON0,2
LOOP
BTFSC ADCON0,2
GOTO LOOP

movf ADRESH,W
andlw 0x03 ; solo i primi due bit
movwf NumH

BTFSS NumH,0
goto YY
goto XX

BTFSS NumH,1
goto WW
goto ZZ

ABAB BSF STATUS,RP0
movf ADRESL,W ; tutti i bit del registro
BCF STATUS,RP0

movwf NumL
movwf PORTC

BTFSS NumH,0
GOTO $+2
BSF PORTB,0
BCF PORTB,0

BTFSS NumH,1
GOTO $+2
BSF PORTB,1
BCF PORTB,1

GOTO MAIN

;_________________________________________________ ______
WW
BCF PORTB,1
GOTO ABAB
;_________________________________________________ ______
ZZ
BSF PORTB,1
GOTO ABAB
;_________________________________________________ ______
YY
BCF PORTB,0
GOTO ABAB
;_________________________________________________ ______
XX
BSF PORTB,0
GOTO ABAB

END


Citazione:

Originalmente inviato da MSchiepp (Messaggio 2540550)
Ti confermo che stai leggendo solo il registro ADSRH!!
Se vuoi mandami il codice che gli dò un'occhiata.

Michele



Tutti gli orari sono GMT +2. Adesso sono le 13:30.

Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002