|
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 |
07-10-2009, 03:05 PM | #1 |
Đệ tử 1 túi
Tham gia ngày: Feb 2009
Bài gửi: 21
: |
Chương trình sai
chào các bác !!! chương trình sau của em ko biết sai ở chỗ nào mà khi mô phỏng thì ko thể thay đổi độ rộng xung được.
ý em là khi vặn biến trở thì độ rộng xung cũng theo đó mà thay đổi. các phím dùng để thay đổi chiều của động cơ. Code:
//chuong trinh: ........... #define stop RB1 #define start RB2 #define left RB3 #define right RB4 int8 value; //khai bao bien luu tru ket qua ADC void quay_trai(){ SET_PWM1_DUTY(0); DELAY_MS(100); value = read_adc(); SET_PWM2_DUTY(VALUE); } void quay_phai(){ set_pwm2_duty(0); DELAY_MS(100); value = read_adc(); set_pwm1_duty(value); } void stop_DC(){ set_pwm1_duty(0); set_pwm2_duty(0); } //====================CHUONG TRINH CHINH========================// void main(void) { //=================== KHOI TAO CHO ADC=========================// setup_adc(adc_clock_internal); //chon xung xung clock cho bo ADC setup_adc_ports(sAN0|VSS_VDD); //thiet lap cong AN0 la dau vao ADC set_adc_channel(0); //chon chan AN0 cho lenh doc ADC tiep delay_us(10); //====================KHOI TAO CHO PWM=========================// setup_ccp1(CCP_PWM); //cau hinh cho ccp1 lam dau ra PWM setup_ccp2(CCP_PWM); //-------------ccp2--------------- setup_timer_2(T2_DIV_BY_1,255,1); //chon tan so dau ra cho bo PWM set_tris_B(0x1E); //thiet lap cac chan RB1-RB4 la input (00011110b = 1Eh) set_pwm1_duty(0); //tat dong co set_pwm2_duty(0); //----------- delay_ms(50); START: while(1){ IF(stop == 0){ stop_DC(); } ELSE IF(left == 0){ quay_trai(); } ELSE IF(right==0){ quay_phai(); } } } http://www.mediafire.com/?sharekey=0...4e75f6e8ebb871 mong các bác chỉ giùm thay đổi nội dung bởi: phamminhtuan, 09-10-2009 lúc 09:36 AM. Lý do: định dạng code |
|
|