Ðề tài: Thời gian ADC = ???
View Single Post
Old 21-11-2011, 04:23 PM   #3
ht2_hv
Nhập môn đệ tử
 
Tham gia ngày: Jan 2011
Bài gửi: 4
:
Cám ơn bác đã trả lời.
Em muốn hỏi thêm là như bác nói thì với thạch anh 20M thì thời gian lấy mẫu nhỏ nhất là 0.4 us, vậy sao em lấy mẫu trong 20 us mà chỉ được có 3 mẫu, các bác xem code có gì sai không???
code:

#include<16f877.h>
#include <_df_.h>
#use delay(clock = 20000000)
#use rs232(baud = 9600,parity = n,xmit = pin_C6, rcv = pin_C7)

int var_adc[];
int var_timer1_count = 0;
int16 var_adc_count = 0;

void init()
{
enable_interrupts(int_timer1);
setup_timer_1(t1_internal | t1_div_by_2);

set_timer1(65486);
//T_timer = (65536-65486)*4*2/20M = 20us
}

#int_timer1
void interrupt_timer1(void)
{
var_timer1_count++;
if(var_timer1_count != 2)
printf("%lu\n\r",var_adc_count);
set_timer1(65486);
}

void main(void)
{
enable_interrupts (GLOBAL);
setup_adc(adc_clock_div_2);
setup_adc_ports(AN0_AN1_VSS_VREF );
set_adc_channel(0);
init();
while(true)
{
if(var_timer1_count == 2)
{
var_adc[var_adc_count++] = read_adc();
}
}
}
ht2_hv vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn