PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) (http://www.picvietnam.com/forum/forumdisplay.php?f=12)
-   -   ? pwm có gì sai (http://www.picvietnam.com/forum/showthread.php?t=7303)

dinhminh09 02-11-2010 05:53 PM

? 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ỉ

robotpic 03-11-2010 12:41 AM

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 Ý

dinhminh09 03-11-2010 12:49 AM

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


Múi giờ GMT. Hiện tại là 01:23 PM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam