Raha323
15-01-2014, 10:52
با سلام
دوستان من چطور میتونم یک PWM دقیق داشته باشم طریقه محاسبه کردن اش هم بلد نیستم ممنون میشم کمکم کنید
من آی سی18F8720 رو دارم و کریستال ام هم 14745600 میباشد و مثلا میخوام 1درجه بر ثانیه سرعت خروجیم ست بشه چه راه حلی وجو داره
محاسبه خود duty به چه صورت است
من PWM رو راه اندازی کردم ولی کنترل دست من نیست حتی اعداد زیر صفر هم ست میکنم تو duty یه سرعتی میگیره
; ( set_pwm2_duty(0.06
; ( set_pwm2_duty(26
; ( set_pwm2_duty(20
; ( set_pwm2_duty(300
همه اینا یه سرعتی میشه ولی من میخوام محاسبه کنم
setup_timer_1 (T1_INTERNAL|T1_DIV_BY_8);
setup_timer_2(T2_DIV_BY_16, 243 , 1);
setup_ccp1(CCP_PWM);
setup_ccp2(CCP_PWM);
دوستان خواهشا کمک کنید
از اینم چیزی سر در نیاوردم در helpخود PCW
Examples:
// For a 20 mhz clock, 1.2 khz frequency,
// t2DIV set to 16
// the following sets the duty to 50% (or 416 us).
long duty;
duty = 512; // .000416/(16*(1/20000000))
set_pwm1_duty(duty);
:(
دوستان من چطور میتونم یک PWM دقیق داشته باشم طریقه محاسبه کردن اش هم بلد نیستم ممنون میشم کمکم کنید
من آی سی18F8720 رو دارم و کریستال ام هم 14745600 میباشد و مثلا میخوام 1درجه بر ثانیه سرعت خروجیم ست بشه چه راه حلی وجو داره
محاسبه خود duty به چه صورت است
من PWM رو راه اندازی کردم ولی کنترل دست من نیست حتی اعداد زیر صفر هم ست میکنم تو duty یه سرعتی میگیره
; ( set_pwm2_duty(0.06
; ( set_pwm2_duty(26
; ( set_pwm2_duty(20
; ( set_pwm2_duty(300
همه اینا یه سرعتی میشه ولی من میخوام محاسبه کنم
setup_timer_1 (T1_INTERNAL|T1_DIV_BY_8);
setup_timer_2(T2_DIV_BY_16, 243 , 1);
setup_ccp1(CCP_PWM);
setup_ccp2(CCP_PWM);
دوستان خواهشا کمک کنید
از اینم چیزی سر در نیاوردم در helpخود PCW
Examples:
// For a 20 mhz clock, 1.2 khz frequency,
// t2DIV set to 16
// the following sets the duty to 50% (or 416 us).
long duty;
duty = 512; // .000416/(16*(1/20000000))
set_pwm1_duty(duty);
:(