|
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 |
14-06-2009, 12:14 PM | #15 |
Đệ tử 2 túi
Tham gia ngày: Apr 2007
Nơi Cư Ngụ: Quảng Trị - Đà Nẵng
Bài gửi: 43
: |
pwm
2 đoạn mã sau là tuơng đuơng, nhưng khi chạy mạch thật thì không biết vì sao mà đoạn mã tạo PWM (mã 2) lại không làm việc (ko chạy hoặc chạy sai gậy ngắn mạch cầu H), còn mã 1 thì chạy bình thường?
------------Mã 1------------- Code:
#include <18f4331.h> #fuses HS,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT #use delay(clock=20000000) void main() { while (1) { output_B(0B00001001); delay_us(21); output_B(0X00); delay_us(2); output_B(0B00000110); delay_us(21); output_B(0X00); delay_us(2); } } -------------Mã 2( dùng chức năng PWM)------------ Code:
#include <18f4331.h> #fuses HS,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT #use delay(clock=20000000) #bit TBInt_pin = 0xfa4.4 #byte PTCON0 = 0XF7F #byte PTCON1 = 0XF7E #byte PTMRL = 0XF7D #byte PTMRH = 0XF7C #byte PTPERL = 0XF7B #byte PTPERH = 0XF7A #byte PDC0L = 0XF79 #byte PDC0H = 0XF78 #byte PDC1L = 0XF77 #byte PDC1H = 0XF76 #byte PDC2L = 0XF75 #byte PDC2H = 0XF74 #byte PDC3L = 0XF73 #byte PDC3H = 0XF72 #byte SEVTCMPL = 0XF71 #byte SEVTCMPH = 0XF70 #BYTE PWMCON0 = 0XF6F #BYTE PWMCON1 = 0XF6E #BYTE DTCON = 0XF6D #byte FLTCONFIG = 0XF6C #byte OVDCOND = 0XF6B #byte OVDCONS = 0XF6A #byte ANSEL0 = 0XFB8 void main() { setup_power_pwm_pins(PWM_COMPLEMENTARY,PWM_COMPLEMENTARY,PWM_OFF,PWM_OFF); setup_power_pwm(PWM_CLOCK_DIV_4|PWM_FREE_RUN,1,0,249,0,1,30);//20KHz set_power_pwm0_duty(498); set_power_pwm2_duty(498); while (1) { if (TBINT_PIN == 1 && PTMRL >= 50) { set_power_pwm0_duty(498); set_power_pwm2_duty(498); TBINT_PIN= 0; } } } ------------------ Mong các cao nhân chỉ giùm, em cần gấp lắm. thay đổi nội dung bởi: namqn, 14-06-2009 lúc 12:17 PM. Lý do: định dạng code |
|
|