|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
|
Ðiều Chỉnh | Xếp Bài |
08-04-2008, 01:30 AM | #1 |
Đệ tử 1 túi
Tham gia ngày: Jan 2008
Bài gửi: 15
: |
Mới học ADC - vướng mắc 1 số chỗ xin được hỏi
em đang tập dùng chức năng adc của pic nhưng gặp 1 số vấn đề như vầy,
*acquisition time, em ko biết tính cái khoảng delay trong đoạn code sau như nào, nó có phụ thuọc vào osc mà mình dùng ko Code:
setup_adc_ports(AN0); setup_adc(ADC_CLOCK_INTERNAL); delay_us(10); *adc của em xuất ra 10 bit(2 thanh ghi) nhưng mà cổng xuất như portB chỉ có 8 bit, thì làm thế nào để giữ nguyên dc độ chính xác(Vref/1024) hoặc là giảm độ chính xác xuống 8 bit(Vref/256) *có bác nào có đoạn code hiển thị điện áp vào ANx (analog) ra led 7 đoạn thì cho em xin tham khảo(viết bằng CCS C) code em viết thì thế này, cái này em mới chỉ cho hiển thì qua 8led trên cổng B thôi, em dùng hàm while và delay để lặp đi lặp lại quá trình convert trong 1 khoảng delay nhất định thì đầu ra digital cũng thay đổi được khi mình thay đổi điện áp vào nhưng hình như ko ổn lắm vì nó cứ nhấp nháy, ko liền mạch, các bác các thầy chỉ giáo hộ em chút, em xin cám ơn! Code:
#include <16f877a.h> #include <def_877a.h> #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #use delay(clock=4000000) void main() { float voltage; //thiet lap che do cho portb trisa=0xff; trisb=0x00; trisc=0x00; trisd=0x00; trise=0x00; //adc intiate setup_adc(adc_clock_internal); setup_adc_ports(an0); delay_us(20); //read while (true){ voltage=(float)read_adc(); portb=voltage; delay_ms(100); portb=0; delay_ms(100); } } |
|
|