View Single Post
Old 23-12-2009, 02:26 PM   #3
minhtammechanic
Nhập môn đệ tử
 
Tham gia ngày: Dec 2007
Bài gửi: 1
:
pic6f88

mình dùng 16f88 để pwm điều khiển dc, chân ra4 là đầu vào timer0/counter, nhưng timer0/counter khong chịu đếm mới chết chứ.
code của em:
#include "D:\DOAN3\project1\doan.h" //em da khai bao xung ngoai chia 1
#int_RDA
int dieukhien,thuc,lantran;
long thaydoi,b,xung,a;
RDA_isr()
{
dieukhien=getc();
}






void main()
{

setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_OFF);
setup_spi(FALSE);
setup_timer_0(RTCC_EXT_L_TO_H|RTCC_DIV_1); //timer0 dinh dang dem xung ngoai_counter0
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DIV_BY_4,24,1);
setup_ccp1(CCP_PWM);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);
setup_oscillator(False);
ccp_pwm;

set_tris_a(255); // TODO: USER CODE!!
set_tris_b(255);




while(1){
xung=get_timer0(); // doc gia tri counter0
thuc=xung/5.4;
thaydoi=0;
if (dieukhien>thuc){ //dieukhien la tinh hieu may tinh truyen xuong
b=(dieukhien-thuc);
thaydoi=thaydoi+b;


}
if (dieukhien<thuc){
b=(thuc-dieukhien);
thaydoi=thaydoi-b;

}
putc(thuc); //truyen gia tri len may tinh
set_pwm1_duty(thaydoi); //dat lai gia tri cho pwm, neu dat la 200 se chay

delay_ms(500);

}
}


Em mới dùng CCS trước đây dùng MikroC, nên chưa rành lám mong chỉ giáo.
minhtammechanic vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn