PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) (http://www.picvietnam.com/forum/forumdisplay.php?f=12)
-   -   tắt chức năng analog của các port?? (http://www.picvietnam.com/forum/showthread.php?t=4811)

hongquyen 23-08-2009 01:34 PM

tắt chức năng analog của các port??
 
đối với PIC16f887 sau khi reset thì mặc định các port A,B,E sẽ mặc định là đọc điện áp là analog vậy trong CCS thì mình khai báo 2 lệnh sau trong main:setup_adc_(adc_off)và setup_adc_ports(no_analog) để đọc điện áp digital cho chính xác làm như vậy có phải kg ạ??

em cảm ơn!

Mr.Bi 23-08-2009 09:31 PM

hình như k phải, mặc định khi RST , các chân đều là IO digit.

hongquyen 23-08-2009 09:41 PM

nhưg mà anh ơi sau khi reset thì thanh ghi ANSEL bằng 1 mà anh, mà bằng 1 có nghĩa là chứ năng analog hoạt đúng mà ạ??

anh coi lại giúp em với

phamminhtuan 24-08-2009 11:10 PM

Trích:

Nguyên văn bởi hongquyen (Post 28865)
đối với PIC16f887 sau khi reset thì mặc định các port A,B,E sẽ mặc định là đọc điện áp là analog vậy trong CCS thì mình khai báo 2 lệnh sau trong main:setup_adc_(adc_off)và setup_adc_ports(no_analog) để đọc điện áp digital cho chính xác làm như vậy có phải kg ạ??

em cảm ơn!

để đọc điện áp digital cho chính xác có nghĩa là sao hả bạn?
setup_adc_ports(no_analog) cấu hình các ngõ vào ADC (ANx) sử dụng như digital I/O, chỉ xuất/nhập mức logic

hongquyen 24-08-2009 11:22 PM

để đọc điện áp digital cho chính xác <<<< ý của em là sau khi reset thì thanh ghiANSEL sẽ là 1, vậy nếu mình kg tác động vào thanh ghi(dùng setup_adc_ports(no_analog) ) này thì khi đọc mức logic thì nó sẽ luôn là "0"

ý em là như vậy ạ

phamminhtuan 24-08-2009 11:33 PM

Trích:

Nguyên văn bởi hongquyen (Post 28902)
để đọc điện áp digital cho chính xác <<<< ý của em là sau khi reset thì thanh ghiANSEL sẽ là 1, vậy nếu mình kg tác động vào thanh ghi(dùng setup_adc_ports(no_analog) ) này thì khi đọc mức logic thì nó sẽ luôn là "0"

ý em là như vậy ạ

Hoàn toàn chính xác, khi ANSx = 1 và TRISx = 1 thì đọc giá trị của Port = 0
Khi Reset thì ANSx = 1 và TRISx = 1.

Mr.Bi 25-08-2009 11:53 PM

u khai báo thế này , dù RST bao nhiu , các chân của u cũng là IO Digit , ok ?
Code:

main()
{ set_tris_x(0x00); // neu mun tất cả các chân của port này là chân xuất
                              (set_tris_x(0xFF); // hoặc nhập)
  PORTx = 0 ; xuất mức 0
  while(1);
}



Múi giờ GMT. Hiện tại là 11:43 AM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam