Sari la conținut
ELFORUM - Forumul electronistilor

Termostat - PIC16F877


Postări Recomandate

REGISTER 13-1: CVRCON CONTROL REGISTER (ADDRESS 9Dh)
R/W-0 R/W-0 R/W-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0
CVREN CVROE CVRR — CVR3 CVR2 CVR1 CVR0
bit 7 bit 0
bit 7 CVREN: Comparator Voltage Reference Enable bit
1 = CVREF circuit powered on
0 = CVREF circuit powered down
bit 6 CVROE: Comparator VREF Output Enable bit
1 = CVREF voltage level is output on RA2/AN2/VREF-/CVREF pin
0 = CVREF voltage level is disconnected from RA2/AN2/VREF-/CVREF pin
bit 5 CVRR: Comparator VREF Range Selection bit
1 = 0 to 0.75 CVRSRC, with CVRSRC/24 step size
0 = 0.25 CVRSRC to 0.75 CVRSRC, with CVRSRC/32 step size
bit 4 Unimplemented: Read as ‘0’
bit 3-0 CVR3:CVR0: Comparator VREF Value Selection bits 0 ≤ VR3:VR0 ≤ 15
When CVRR = 1:
CVREF = (VR<3:0>/ 24) • (CVRSRC)
When CVRR = 0:
CVREF = 1/4 • (CVRSRC) + (VR3:VR0/ 32) • (CVRSRC)
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown 

Din ce am citit aici trebuie modificat...insa nu stiu cum sa-i spun ca are 2.5V pe vref

 

 

Link spre comentariu

Corect, conectati 2.5V pe pinul vref+ (AN3) si pe pagina 130 aveti o tabela cu configurarea PCFG3:PCFG0 din care la al 2 lea rand aveti exact ce va trebuie Vref+ conectat la pin AN3, deci valoarea pentru registrii este "0001". Dupa care recalculati functia de ADC_Read pt 2.5V sau cat obtineti din divizor.

Editat de Bandi Szasz
Link spre comentariu

Da, ori trebuie scris complet registrul ADCON1 cum ati scris, ori trebuie setat separat fiecare bit ADCON1.F0=.. , ADCON1.F1=.., ADCON1 .F2=.. , cu coloana aia C/R nici eu nu prea vad care e treaba nu am mai intalnit pana acuma asa o configuratie.

 

Incercati sa apelati in functia main() ADC_Init(), si in loc de ADC_Read() sa puneti ADC_Get_Sample();

 

ADC_Read o sa configureze din nou de fiecare data modulul ADC inainte de citire, este specificat in documentatia librariei si foarte posibil sa rescrie Vref-ul la VDD.

Link spre comentariu

Pentru PI16F876A (cf. DS) ai:

Vref+ pe pinul 5 al picului, Vref- la Vss( pinul8 + pinul 19)

 

Vref+ si Vref- se folosesc numai cand sursele de ref. sunt externe.

 

Vss inseamna masa integratului.(sau 0V)

Tu treb. sa conectezi plusul iesirii sursei de referinta externa la Vref+, iar masa tensiunii de referinta

la Vss(masa montajului) si nu la Vdd, asa cum ai scris.

 

La Vdd se conecteaza plusul(+) tensiunii de alimentare a microprocesorului iar la Vss, masa.

 

Conectarea concomitenta la Vref+ si Vref- o faci NUMAI cand ai 2 surse de referinta EXTERNE distincte.

In acest caz rezultatul tensiunii de ref. = Uref+ - Uref-

Editat de tic5
Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum
×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări