۰۹-مرداد-۱۳۹۳, ۰۹:۴۸:۲۱
سلام
دوستان من PWM رو در تایمر 1 راه اندازی کردم به اینصورت
یه سری عددهای دارم که دارای مقادیر اعشاری هستند و این اعداد حاصل یه سری جمع و تفریق هستند.
مقادیر EMF هم مثلا اعداد زیر هستند:
این مقادیر رو که در PWM1A میریزم و PWM1A رو نمایش میدم عددهای با اختلاف زیاد رو نمایش میده .چرا اینجوریه ؟
اینم قسمتی از برنامه که هر کدام از مقادیر 337.65 /338.35 /339.05 رو درون PWM1A میریزم یه مقادیر نشون میده
[b]مثلا مقدار 338.3499 رو PWM1A عدد 204 نشون میده
مقدار 336.94 رو PWM1A عدد 409 و
مقدار 337.6499 رو PWM1A عدد 819 نشون میده
یعنی 1 عدد رو اضافه میشه حدودا 300 تا PWM1A جابجا میشه
یه تست کردم دیدم اعداد رند رو که میریزم درون pwma1 مشکلی نداره و دقیقا همون عدد رو نشون میده ولی اعداد رو که دارای اعشاری هست رو خیلی بی ربط نشون میده .
ضمن اینکه باید حتما اعداد اعشاری رو نشون بدم
دوستان من PWM رو در تایمر 1 راه اندازی کردم به اینصورت
کد:
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , Prescale = 8
یه سری عددهای دارم که دارای مقادیر اعشاری هستند و این اعداد حاصل یه سری جمع و تفریق هستند.
مقادیر EMF هم مثلا اعداد زیر هستند:
کد:
Emf = 337.65
Emf = 338.35
Emf = 339.05
اینم قسمتی از برنامه که هر کدام از مقادیر 337.65 /338.35 /339.05 رو درون PWM1A میریزم یه مقادیر نشون میده
[b]مثلا مقدار 338.3499 رو PWM1A عدد 204 نشون میده
مقدار 336.94 رو PWM1A عدد 409 و
مقدار 337.6499 رو PWM1A عدد 819 نشون میده
یعنی 1 عدد رو اضافه میشه حدودا 300 تا PWM1A جابجا میشه
کد:
$regfile = "m8def.dat"
$crystal = 8000000
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , Prescale = 8
EMF = 337.65
'EMF = 338.35
'EMF = 339.05
Do
Waitms 20
Pwm1a = EMF
Locate 2 , 1
Lcd Pwm1a ; " " ; EMF ; " "
Loop
یه تست کردم دیدم اعداد رند رو که میریزم درون pwma1 مشکلی نداره و دقیقا همون عدد رو نشون میده ولی اعداد رو که دارای اعشاری هست رو خیلی بی ربط نشون میده .
ضمن اینکه باید حتما اعداد اعشاری رو نشون بدم