Thai microtron community

Electronic Knowledge Base => Microcontoller & Electronics => Topic started by: sarawutplay on April 21, 2013, 01:30:51 AM



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%