Title: การใช้ PWM คำนวนแล้วผลออกไม่ตรงครับ Post by: sarawutplay on April 21, 2013, 01:30:51 AM ตามคำแนะนำผมหันมาใช้ CCS ในการเขียนโปรแกรมสร้าง PWM เลยได้ตัวอย่างตามด้านล่างนี้ http://www.thaimicrotron.com/CCS-628/Timer/PWM_1.htm ผมจะสร้างสัญญาณที่มีความถี่ 25KHz Duty50% ใช้ XTAL=4MHz t2dvi = 4 ซิมในโพรทีอุซ ครับ ลองคำนวณแล้วได้ตามโปรแกรมด้านล่างนี้ครับ แต่ผลจากการซิมไม่ตรงเลยครับ เลยไม่รู้ว่าแก้คำสั่งครบถ้วนและถูกต้องหรือไม่พี่ๆช่วยแนะนำหน่อยครับ //Generate PWM Pluse 1KHz duty cycle 50% at RB3/CCP1 (PIN9) //#include <16F628.h> #include <16F648A.h> #use delay(clock=4000000) #fuses XT,PUT,BROWNOUT,MCLR,NOWDT,NOPROTECT,NOLVP #define TxD PIN_A0 #define RxD PIN_A1 void main(void) { setup_ccp1(CCP_PWM); // Configure CCP1 as a PWM setup_timer_2(T2_DIV_BY_4, 9, 1); set_pwm1_duty(0.25); while( TRUE ) ; //Loop here } เรื่องที่ 2 พอดีผมต้องการใช้คีย์แพตในการสั่งให้ ดิวตี้ไซเคิลออกเป็นเปอร์เซ็ตตามที่เราต้องการ แล้วให้แสดงผลใน LCD ว่าตอนนี้ทำงานอยู่ที่กี่เปอร์เซ็น ท่านใดพอจะมีตัวอย่างหรือคำสั่งเบสิกในการใช้คีย์แพต กับ การเชื่อต่อจอ LCD หรือคำสั่งการควบคุมLCD บ้างไหมครับ ขอบคุณครับ Title: Re: การใช้ PWM คำนวนแล้วผลออกไม่ตรงครับ Post by: samarters on April 22, 2013, 11:00:42 AM setup_timer_2(T2_DIV_BY_4, 9, 1);
while(true){ set_pwm1_duty(4); } น่าจะประมาณ 50% |