PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT PIC,...)

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 27-02-2011, 06:22 PM   #1
ElecTel
Đệ tử 2 túi
 
Tham gia ngày: Jan 2011
Bài gửi: 36
:
Vref của adc trong pic???

Các anh cho em hỏi vấn đề này?? mong được các anh chỉ bảo...

em khai báo adc thế này

Code:
setup_adc_ports(all_analog );
setup_adc(ADC_CLOCK_INTERNAL );
set_adc_channel( 0 );
a= read_adc();
sau đó thì viết 1 đoạn code để hiển thị lên lcd...em thay đôi nguồn điện lên chân A0 từ 0->5V
Kết quả thế này 0V trên kết quả trên lcd=0;1->4,5v thì 134 hay 135 gì đó

Khó hiểu nhất là lúc chỉnh nguồn lên 5v thì kết quả trên lcd về 0?????
theo em biết thì khi thiết lập all_analog thì Vref=Vdd vậy 5V thì có gì đặt biệt à??

Sau đó em tiếp tục chỉnh lên 6-10V thì giá trị trên lcd giử nguyên 136.....Tại sao 5V thì kết quả đọc được lại 0???? em mô phỏng trên protes 7.6 sp 4
ElecTel vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-02-2011, 01:21 PM   #2
tdm
Đệ tử 7 túi
 
Tham gia ngày: May 2005
Bài gửi: 258
:
Trích:
Nguyên văn bởi ElecTel View Post
Các anh cho em hỏi vấn đề này?? mong được các anh chỉ bảo...

em khai báo adc thế này

Code:
setup_adc_ports(all_analog );
setup_adc(ADC_CLOCK_INTERNAL );
set_adc_channel( 0 );
a= read_adc();
sau đó thì viết 1 đoạn code để hiển thị lên lcd...em thay đôi nguồn điện lên chân A0 từ 0->5V
Kết quả thế này 0V trên kết quả trên lcd=0;1->4,5v thì 134 hay 135 gì đó

Khó hiểu nhất là lúc chỉnh nguồn lên 5v thì kết quả trên lcd về 0?????
theo em biết thì khi thiết lập all_analog thì Vref=Vdd vậy 5V thì có gì đặt biệt à??

Sau đó em tiếp tục chỉnh lên 6-10V thì giá trị trên lcd giử nguyên 136.....Tại sao 5V thì kết quả đọc được lại 0???? em mô phỏng trên protes 7.6 sp 4
adc của PIC chỉ có thể thay đổi từ 0->5v mà thôi.
bạn setup adc ở chế độ 8bit hay 10 bit.
biến a là 8bit hay 16 bit.
bạn hãy đưa cả code lên để mọi người biết bạn đã khai báo gì ở trong CT rồi.
__________________
viết chương trình cho vdk chạy ổn định là cả một vấn đề.
tdm vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 01-03-2011, 01:10 AM   #3
ElecTel
Đệ tử 2 túi
 
Tham gia ngày: Jan 2011
Bài gửi: 36
:
mình read_adc được rồi! cũng không hiểu vì sao nửa, 0V thì 0 từ 1-5V thì 136 gì đấy cũng không biết số đó là gì!

Nhưng mà khi read_adc nhiều channel thì lúc mô phỏng trong protues nó lại hiện cảnh báo

ADC conversion started before wait time has require.....following ADC.....

Hình như là chuyển đổi adc đã bắt đầu trước khi việc chờ(?!) cho lần adc tiếp theo,nói chung theo mình hiểu là phải delay hay thiết lập cờ bận gì đấy giửa 2 lần adc liên tục...
Bọn nước ngoài nó làm vậy nè:
read_adc(start_only_...);
value=read_adc(read_only..);

Mình cũng delay rồi cũng thử làm như bọn nó rồi thậm chí là set cờ bận ADIF ,ADIE gì đó
thế mà mô phỏng trong PROTUES vẫn bị cảnh báo trên??????(hình như mình set cờ bận và đặt adc trong timer thì thời gian xuất hiện cảnh báo muộn hơn)
Bạn nào thử mô phỏng giửa 2 lần adc liên tục trên protues xem nó có bị cảnh báo như vậy không???

Lần này không biết CCS bị lổi ko??? ( có thể trong hàm defauld của nó viêt hàm READ_ADC() quên set cờ bận chăng???) lần trước là cái file lcd.c trong CCS4.114 bị lỗi các bạn nào xài bản 4.114 thì cần xem lại
ElecTel vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-03-2011, 11:06 PM   #4
phanlamdien
Nhập môn đệ tử
 
Tham gia ngày: Sep 2010
Bài gửi: 9
:
Thêm delay là ok thôi.
phanlamdien vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


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


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam