سلام به همه اساتید .
من یه سروو مدل SG5010 رو بدون هیچ مشکلی راه اندازی کردم . اما بر خلاف اون چیزی که توی همه ی سایت ها در باره ی سروو خونده بودم ، با عرض پالس500us به صفر درجه میره و با عرض پالس 2280us به 180 درجه . مشکل اصلی این نیست . تعجب من از اینه که چرا با 1390us در نود درجه قرار نمی گیره و برای این که در وسط قرار بگیره باید عرض پالس رو 1360us قرار بدیم ؟ مگر میانگین 500 و 2280 نمیشه 1390 ؟ آخه من میخوام یه کار خیلی دقیق انجام بدم . واسه همین از سروو استفاده میکنم . اگه این جور باشه نمیشه پیش بینی کرد که برای مثلا 20 درجه چه عرض پالسی باید بدیم . خواهش میکنم کمک کینید . کارم خیلی گیره . اینم برنامه . :angry:
من یه سروو مدل SG5010 رو بدون هیچ مشکلی راه اندازی کردم . اما بر خلاف اون چیزی که توی همه ی سایت ها در باره ی سروو خونده بودم ، با عرض پالس500us به صفر درجه میره و با عرض پالس 2280us به 180 درجه . مشکل اصلی این نیست . تعجب من از اینه که چرا با 1390us در نود درجه قرار نمی گیره و برای این که در وسط قرار بگیره باید عرض پالس رو 1360us قرار بدیم ؟ مگر میانگین 500 و 2280 نمیشه 1390 ؟ آخه من میخوام یه کار خیلی دقیق انجام بدم . واسه همین از سروو استفاده میکنم . اگه این جور باشه نمیشه پیش بینی کرد که برای مثلا 20 درجه چه عرض پالسی باید بدیم . خواهش میکنم کمک کینید . کارم خیلی گیره . اینم برنامه . :angry:
$regfile = "m16def.dat"
$crystal = 8000000
Config Portb = Output
Config Timer0 = Timer , Prescale = 1024
Config Timer1 = Timer , Prescale = 8
Dim Motor_time As Integer , A As Byte , B As Byte
Motor_time = 1390
A = 0
Motor1 Alias Portb.0
Stop Timer1
Enable Ovf0
Enable Interrupts
Enable Timer0
On Ovf0 Make_pwm
Timer0 = 100
Do
Loop
End
Make_pwm:
Timer0 = 100
Timer1 = 0
Start Timer1
Set Motor1
Do
Loop Until Timer1 >= Motor_time
Reset Motor1
Return
$crystal = 8000000
Config Portb = Output
Config Timer0 = Timer , Prescale = 1024
Config Timer1 = Timer , Prescale = 8
Dim Motor_time As Integer , A As Byte , B As Byte
Motor_time = 1390
A = 0
Motor1 Alias Portb.0
Stop Timer1
Enable Ovf0
Enable Interrupts
Enable Timer0
On Ovf0 Make_pwm
Timer0 = 100
Do
Loop
End
Make_pwm:
Timer0 = 100
Timer1 = 0
Start Timer1
Set Motor1
Do
Loop Until Timer1 >= Motor_time
Reset Motor1
Return
دیدگاه