![]() |
|
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 |
![]() |
#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 |
![]() |
![]() |
![]() |
#2 |
Đệ tử 1 túi
Tham gia ngày: Feb 2009
Bài gửi: 21
: |
ah xin lỗi các bác. Cái nhãn START ko có tác dụng gì cả. em quên chưa xoa nó đi
|
![]() |
![]() |
![]() |
#3 |
Đệ tử 1 túi
Tham gia ngày: Feb 2009
Bài gửi: 21
: |
Bác falleaf và các bác khác có thể chỉ cho em chỗ chưa đúng được ko vậy.
Hoặc viết hộ em một chương trình nhw ý tưởng của em cũng được. Em sốt ruột wa !!! |
![]() |
![]() |
![]() |
#4 |
Super Moderator
Tham gia ngày: Feb 2006
Bài gửi: 150
: |
Bạn cho biết là bạn đã dịch chương trình được chưa, vì hình như bạn viết bằng CCS nhưng các định nghĩa như #define stop RB1 rồi sau đó if(stop) .. sẽ báo lỗi ngay -> thay bằng #define stop input(PIN_B1)
|
![]() |
![]() |
![]() |
#5 |
Đệ tử 1 túi
Tham gia ngày: Feb 2009
Bài gửi: 21
: |
em đã dịch OK. ko có lỗi gì cả. v4.078 thì phải. trong phần help của nó cũng dùng như vậy mà. nói chung là mấy phần định nghĩa ko có lỗi gì cả.
|
![]() |
![]() |
![]() |
#6 |
Đệ tử 1 túi
Tham gia ngày: Feb 2009
Bài gửi: 21
: |
cảm ơn các bác. Em đã tìm ra đường đi rồi. Tận hai con đường cơ. một đường chuột chạy và một đường chim bay. hjhj.
|
![]() |
![]() |
![]() |
|
|