02-11-2010, 05:53 PM | #1 |
Đệ tử 4 túi
|
? pwm có gì sai
#include <16F877a.h>
#fuses XT, NOWDT, NOPROTECT, BROWNOUT, PUT, NOLVP #use delay(clock = 4000000) main() { output_low(PIN_C1); // Set CCP2 output low output_low(PIN_C2); // Set CCP1 output low setup_ccp1(CCP_PWM); // Configure CCP1 as a PWM setup_ccp2(CCP_PWM); // Configure CCP2 as a PWM setup_timer_2(T2_DIV_BY_16, 124, 1); // 500 Hz set_pwm1_duty(31); // 25% duty cycle on pin C2 set_pwm2_duty(62); // 50% duty cycle on pin C1 while(1); // Prevent PIC from going to sleep (Important !) } chỉ xài một trình đơn giản zậy mà chạy cũng không được không biết bị sao nữa... mô phỏng thì chỉ có ccp2 là ngõ ra lên cao. mà lên mức cao thôi chứ cũng không xuất ra 1 xung như ý. zậy là sao nhỉ |
03-11-2010, 12:41 AM | #2 |
Đệ tử 4 túi
Tham gia ngày: Jun 2010
Bài gửi: 79
: |
Sao bẠn dÙng #fuses put
theo mÌnh bẠn nÊn sỬa #fuses noput bẠn THỬ sỬA cÓ chẠy ĐƯỢc khÔng NHÉ. Put thÌ nÓ chẠy sau 1 khoẢn time kỂ tỪ khi cẤp nguỒn khÔng biẾt mÌnh nÓi thẾ ĐÚng khÔng nẾu sai mỌi ngƯỜi gÓp Ý |
03-11-2010, 12:49 AM | #3 |
Đệ tử 4 túi
|
thank you! mình sẽ thử xem sao thật ra mình cũng khai báo theo nhiều kiểu rồi. và viết phần dk dc
int8 value; set_pwm1_duty(value); nhưng nó chãy rất kỳ lạ nó chỉ nhận lệnh đầu tiên của mình. rồi cứ như zậy luôn không làm gì được nữa. cứ như nó xài timer1 ấy. không cho mình can thiệp tiếp nữa. nếu bạn rành về phân này thì xin giúp mình. còn về phần khai báo thì nói thật mình không rành cho lắm |
|
|