![]() |
|
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 |
![]() |
#7 |
Đệ tử 3 túi
Tham gia ngày: Dec 2006
Bài gửi: 60
: |
Mình dùng PIC18F2620 và CCS compiler. Đoạn mã sau mình muốn nhận giá trị từ cổng input cho ADC từ tín hiệu bên ngoài:
Code:
#include <18F2620.h> #DEVICE HIGH_INTS=TRUE #DEVICE ADC=10 #include <STDLIB.H> #include "mylib.h" #fuses HS,NOWDT,NOPROTECT,LVP #use delay(clock=8000000) #use SPI(BITS=8) #use rs232(BAUD=57600,parity=N,XMIT=PIN_C6, RCV=PIN_C7, bits=8) void setup_node(){ // set_tris_a(0x0F); set_tris_b(0xFF); set_tris_c(0x90); // --- setup SPI ------------------- setup_spi(SPI_MASTER |SPI_H_TO_L |SPI_CLK_DIV_4); //50ns output_float(PIN_B0); //-------- setup ADC ---------------- // Setup_port_a(AN0_TO_AN4); Setup_ADC(ADC_clock_DIV_8); Setup_ADC_ports(AN0_TO_AN4); Set_ADC_channel(4); delay_us(10); // ---- enable interrupts ---------- enable_interrupts(INT_RDA); ext_int_edge(H_TO_L); enable_interrupts(INT_EXT); enable_interrupts(GLOBAL); } void main(void) { long value; setup_node(); value=adc_read(); while(true){ } } Không biết mình có setup sai chỗ nào không? giá trị nhận được không được đều cho lắm. Chẳng hạn cùng 1 điều kiện nhưng giá trị nhận được thay đổi từ 0-60 hoặc 160-180 thay đổi nội dung bởi: littlephoc, 24-05-2007 lúc 02:46 PM. |
![]() |
![]() |
|
|