سلام
من میخوام در بسکام یه سری محاسبات انجام بدم و نیازه که یه عدد اعشاری رو در یک عدد صحیح ضرب کنم و نتیجه رو بریزم تو pwm1a
و برنامه رو نوشتم و عدد اعشاری n رو وقتی single تعریف میکنم و بعد عملیات و پس از ریختن در یک متغیر word نتیجه رو میریزم تو pwm1a
ولی برنامه کار نمیکنه و هرچقد ولوم رو میچرخونم موتور کار نمیکنه
جالب اینجاس که برنامه درسته چون وقتی n رو word تعریف میکنم و 0.01 رو میکنم 1 سرعت موتور کم و زیاد میشه و وقتی single تعریف میکنم موتور خاموش میمونه
اینم برنامه:
مشکل کجاس ایا باید بعد عملیات متغیر رو ازش جز صحیح بگیرم تا درس شه؟اگه اره چطوری
من میخوام در بسکام یه سری محاسبات انجام بدم و نیازه که یه عدد اعشاری رو در یک عدد صحیح ضرب کنم و نتیجه رو بریزم تو pwm1a
و برنامه رو نوشتم و عدد اعشاری n رو وقتی single تعریف میکنم و بعد عملیات و پس از ریختن در یک متغیر word نتیجه رو میریزم تو pwm1a
ولی برنامه کار نمیکنه و هرچقد ولوم رو میچرخونم موتور کار نمیکنه
جالب اینجاس که برنامه درسته چون وقتی n رو word تعریف میکنم و 0.01 رو میکنم 1 سرعت موتور کم و زیاد میشه و وقتی single تعریف میکنم موتور خاموش میمونه
اینم برنامه:
مشکل کجاس ایا باید بعد عملیات متغیر رو ازش جز صحیح بگیرم تا درس شه؟اگه اره چطوری
کد:
$regfile = "m8def.dat" $crystal = 1000000 ''''''''''''''''''''' PWM & adc''''''''''''''''''''' Config Adc = Single , Prescaler = Auto , Reference = Off Stop Adc Start Adc Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 8 Ddrb.0 = 0 Ddrd.5 = 0 Ddrd.6 = 0 Ddrd.7 = 0 Kammax Alias Pinb.0 Ziadmax Alias Pind.7 Kammin Alias Pind.6 Ziadmin Alias Pind.5 'pb0 kam mikone sorate max ro 'pd7 ziad mikone sorate max ro 'pd6 kam mikone sorate min ro 'pd5 ziad mikone sorate min ro 'sorate max kenare driver . sorate min samte vasate driver Dim Volume As Word Dim Volume1 As Word Dim Volume2 As Word Dim Volume3 As Word Dim Volume4 As Word Dim Volume5 As Word Dim N As Single Dim Volume6 As Word N = 1 Do Volume1 = Getadc(5) Waitms 1 Volume2 = Getadc(5) Waitms 1 Volume3 = Getadc(5) Waitms 1 Volume4 = Getadc(5) Waitms 1 Volume5 = Getadc(5) Volume = Volume1 + Volume2 Volume = Volume + Volume3 Volume = Volume + Volume4 Volume = Volume + Volume5 Volume = Volume / 5 Volume = Volume / 4 Volume = Volume * N If Ziadmax = 1 Then N = N + 0.01 Waitms 40 End If Pwm1a = Volume Loop