Vấn đề với ADC của potentiometer

H

Hasher

Guest
Xin chào!

Tôi đang
sử dụng PIC18F2420 (pha lê = 8MHz & & HS-PLL) với HiTech C compiler.
Tôi muốn 50kΩ potentiometer để được chuyển đổi sang kỹ thuật số trên hai 7-phân đoạn hiển thị trên PORTB.

Vấn đề ==> tôi nhận đúng o / p, nhưng với một trong những trừ.Tôi có nghĩa là nếu áp dụng 50KΩ tôi nhận 0xFE chứ không phải là 0xFF và nếu được áp dụng 0kΩ tôi nhận 0x01 chứ không phải là 0x00.

Chương trình ==>
# bao gồm <pic18.h>
# bao gồm "config.h"
# bao gồm "delay.h"
# bao gồm "jwb.h"

int adc_value;
void init (void);
unsigned char ReadAdcChannel (unsigned char c);

void main (void)
(
unsigned char val0;
char i;
unsigned char c;
đôi dval0;

init ();

trong khi (1)
(
val0 = ReadAdcChannel (0);
/ / dval0 = 5,0 * val0 / 1024; / / chuyển đổi giá trị vào AN0 phao (giả sử Vdd = 5V)
PORTB = val0;
)

void init (void)
(
Porta = 0x00;
/ / ADC Clock INTERNAL CHỌN VÀ Bật ADC
ADCS2 = 0; ADCS1 = 1; ADCS0 = 1; ADON = 1;

/ / ONLY CH0 LỰA CHỌN LÀ ĐỐI VỚI INTERNAL REF = VCC VÀ REF-= GND
PCFG0 = 0; PCFG1 = 1; PCFG2 = 1; PCFG3 = 1;

SET_AS_INPUT (TRISA, BIT0 | BIT1);
TRISB = 0x00;

)

unsigned char ReadAdcChannel (unsigned char c)
(
unsigned char temp;

/ / CLEAR GODONE BIT, CHS0 = CHS1 = CHS2 = 000 ĐẾN CHỌN KÊNH 0
CHS0 = 0; CHS1 = 0; CHS2 = 0; GODONE = 0;

DelayUs (20); / / chờ 20us cho ADC để sẵn sàng
GODONE = 1; / / bắt đầu chuyển đổi ADC
trong khi (GODONE); / / sau đó chờ đợi cho ADC để kết thúc
nếu (ADFM)
trở lại ((ADRESH <<

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Mát mẻ" border="0" />

| ADRESL);
khác
trở lại ((ADRESH <<2) | (ADRESL>> 6));
ADRESH trở lại;
)================================================== ===
jwb.h
================================================== ===
# xác định SET_AS_INPUT (cổng, bit) cổng | = (bits)
# xác định SET_AS_OUTPUT (cổng, bit) cổng & = (~ (bit))
# xác định BIT0 0x01
# xác định BIT1 0x02
# xác định BIT2 0x04
# xác định BIT3 0x08
# xác định BIT4 0x10
# xác định BIT5 0x20
# xác định BIT6 0x40
# xác định BIT7 0x80

 
Hasher đã viết:

Xin chào!Tôi đang sử dụng PIC18F2420 (pha lê = 8MHz & & HS-PLL) với HiTech C compiler.

Tôi muốn 50kΩ potentiometer để được chuyển đổi sang kỹ thuật số trên hai 7-phân đoạn hiển thị trên PORTB.Vấn đề ==> tôi nhận đúng o / p, nhưng với một trong những trừ.
Tôi có nghĩa là nếu áp dụng 50KΩ tôi nhận 0xFE chứ không phải là 0xFF và nếu được áp dụng 0kΩ tôi nhận 0x01 chứ không phải là 0x00.Chương trình ==>

# bao gồm <pic18.h>

# bao gồm "config.h"

# bao gồm "delay.h"

# bao gồm "jwb.h"int adc_value;

void init (void);

unsigned char ReadAdcChannel (unsigned char c);void main (void)

(

unsigned char val0;

char i;

unsigned char c;

đôi dval0;init ();trong khi (1)

(

val0 = ReadAdcChannel (0);

/ / dval0 = 5,0 * val0 / 1024; / / chuyển đổi giá trị vào AN0 phao (giả sử Vdd = 5V)

PORTB = val0;

)void init (void)

(

Porta = 0x00;

/ / ADC Clock INTERNAL CHỌN VÀ Bật ADC

ADCS2 = 0; ADCS1 = 1; ADCS0 = 1; ADON = 1;/ / ONLY CH0 LỰA CHỌN LÀ ĐỐI VỚI INTERNAL REF = VCC VÀ REF-= GND

PCFG0 = 0; PCFG1 = 1; PCFG2 = 1; PCFG3 = 1;SET_AS_INPUT (TRISA, BIT0 | BIT1);

TRISB = 0x00;)unsigned char ReadAdcChannel (unsigned char c)

(

unsigned char temp;/ / CLEAR GODONE BIT, CHS0 = CHS1 = CHS2 = 000 ĐẾN CHỌN KÊNH 0

CHS0 = 0; CHS1 = 0; CHS2 = 0; GODONE = 0;DelayUs (20); / / chờ 20us cho ADC để sẵn sàng

GODONE = 1; / / bắt đầu chuyển đổi ADC

trong khi (GODONE); / / sau đó chờ đợi cho ADC để kết thúc

nếu (ADFM)

trở lại ((ADRESH <<
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Mát mẻ" border="0" /> | ADRESL);

khác

trở lại ((ADRESH <<2) | (ADRESL>> 6));

ADRESH trở lại;

)================================================== ===

jwb.h

================================================== ===

# xác định SET_AS_INPUT (cổng, bit) cổng | = (bits)

# xác định SET_AS_OUTPUT (cổng, bit) cổng & = (~ (bit))

# xác định BIT0 0x01

# xác định BIT1 0x02

# xác định BIT2 0x04

# xác định BIT3 0x08

# xác định BIT4 0x10

# xác định BIT5 0x20

# xác định BIT6 0x40

# xác định BIT7 0x80
 
Tối đa nguồn impedance của ADC của tôi PIC18F2420 là 2.5kΩ.

Hiện có thông tin giúp bạn?

 
Hasher đã viết:

Tối đa nguồn impedance của ADC của tôi PIC18F2420 là 2.5kΩ.Hiện có thông tin giúp bạn?
 
impedance tối đa có thể là yếu tố ....bạn có thể thử nghiệm nó với một 1k potentiomter?

 

Welcome to EDABoard.com

Sponsor

Back
Top