View Single Post
Old 24-05-2007, 02:19 PM   #7
littlephoc
Đệ 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){
}
}
Tín hiệu analog là điện áp có biên độ từ 0V-1.2V .
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.
littlephoc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn