اطلاعیه

Collapse
No announcement yet.

عدد اعشار و pwm

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    عدد اعشار و pwm

    سلام
    من میخوام در بسکام یه سری محاسبات انجام بدم و نیازه که یه عدد اعشاری رو در یک عدد صحیح ضرب کنم و نتیجه رو بریزم تو 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
لطفا صبر کنید...
X