ผมพยามศึกษา PWM โดยซิมูเลตใน Proteus ใช้โค้ดนี้สร้างความถี่
http://www.thaimicrotron.com/CCS-628/Timer/PWM_1.htmและใช้โค้ดนี้วัดความถี่
http://www.thaimicrotron.com/CCS-628/Timer/CaptureEx1.htmไม่รู้ทำไมมันวัดความถี่ได้ 500Hz แต่ในโค้ดมันใช้สร้างความถี่ 1kHz เป็นเพราะอะไรครับ
และถ้าผมต้องการผลิตความถี่ 1KHz เมื่อใช้ XTAL=20MHz, t2div = 1 ,duty cycle = 50% ต้องแก้
setup_timer_2(T2_DIV_BY_4, 249, 1);
เป็น setup_timer_2(T2_DIV_BY_1, 4999, 1);
ใช่ไหมครับเพราะ [(1/1k)/0.05x10u *4 *1]-1 = 4999
และแก้ set_pwm1_duty(500);
เป็น set_pwm1_duty(10000);
ถูกต้องไหมครับ
จากคุณ mmmmm (A:110.77.216.118 X:)
อยากทราบการใช้งาน CCS PIC กับ PWM ครับ
http://www.thaimicrotron.com/CCS-628/Timer/PWM_1.htm
และใช้โค้ดนี้วัดความถี่
http://www.thaimicrotron.com/CCS-628/Timer/CaptureEx1.htm
ไม่รู้ทำไมมันวัดความถี่ได้ 500Hz แต่ในโค้ดมันใช้สร้างความถี่ 1kHz เป็นเพราะอะไรครับ
และถ้าผมต้องการผลิตความถี่ 1KHz เมื่อใช้ XTAL=20MHz, t2div = 1 ,duty cycle = 50% ต้องแก้
setup_timer_2(T2_DIV_BY_4, 249, 1);
เป็น setup_timer_2(T2_DIV_BY_1, 4999, 1);
ใช่ไหมครับเพราะ [(1/1k)/0.05x10u *4 *1]-1 = 4999
และแก้ set_pwm1_duty(500);
เป็น set_pwm1_duty(10000);
ถูกต้องไหมครับ
จากคุณ mmmmm (A:110.77.216.118 X:)