Pages: [1]   Go Down
Print
Author Topic: การใช้ PWM คำนวนแล้วผลออกไม่ตรงครับ  (Read 7693 times)
0 Members and 2 Guests are viewing this topic.
sarawutplay
มาใหม่
*
Offline Offline

Posts: 2


« 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 บ้างไหมครับ ขอบคุณครับ
Logged
samarters
Jr. Member
**
Offline Offline

Posts: 31


Email
« Reply #1 on: April 22, 2013, 11:00:42 AM »

setup_timer_2(T2_DIV_BY_4, 9, 1);
while(true){
 set_pwm1_duty(4);

}

น่าจะประมาณ 50%
Logged
Pages: [1]   Go Up
Print
 
Jump to: