اطلاعیه

Collapse
No announcement yet.

چگونه همه پایه های میکروکنترلر AVR را PWM کنیم ؟؟

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

  • stk
    replied
    پاسخ : چگونه همه پایه های میکروکنترلر AVR را PWM کن

    با سلام و خسته نباشید
    آقای مهندس برنامه ردیف کردم
    در مورد افکت ها نظرتون چیه ؟ با تشکر

    یک دیدگاه بنویسید:


  • zamanimahdi
    replied
    پاسخ : چگونه همه پایه های میکروکنترلر AVR را PWM کنیم ؟؟

    نوشته اصلی توسط سامان اسدی
    درود به همه
    مهدی جان دارم برنامه رو روی نرم افزار پیاده میکنم ...
    کمی تحمل کنید تا کاملش کنم ...
    موفق باشید
    درستش کردم :agree: :wow:
    یه فلاشر قشنگ هم باهاش زدم

    یک دیدگاه بنویسید:


  • SAMAN.ASADI
    replied
    پاسخ : چگونه همه پایه های میکروکنترلر AVR را PWM کنیم ؟؟

    نوشته اصلی توسط MAHDI ZAMANI
    مهندس برای ATTINY 13 میخوامش :mrgreen:
    درود به همه
    مهدی جان دارم برنامه رو روی نرم افزار پیاده میکنم ...
    کمی تحمل کنید تا کاملش کنم ...
    موفق باشید

    یک دیدگاه بنویسید:


  • zamanimahdi
    replied
    پاسخ : چگونه همه پایه های میکروکنترلر AVR را PWM کنیم ؟؟

    مهندس برای ATTINY 13 میخوامش :mrgreen:

    یک دیدگاه بنویسید:


  • stk
    replied
    پاسخ : چگونه همه پایه های میکروکنترلر AVR را PWM کنیم ؟؟

    سلام اقای مهندس تشکر کاملا درست بود کامپایلر را عوض کردم ارور نداد . ممنون

    یک دیدگاه بنویسید:


  • SAMAN.ASADI
    replied
    پاسخ : پاسخ : چگونه همه پایه های میکروکنترلر AVR را PWM کن

    نوشته اصلی توسط stk
    سلام

    با تشکر
    درود بر شما
    شاید برای کرک نامرغوب شما باشه ...
    برای من کامپایل شد ...

    من از این ورژن استفاده میکنم ....
    http://s5.picofile.com/file/8120870600/BASCOM_AVR_2_0_7_3_Techno_Electro_COM_.zip.html
    دانلود کنید و نصب کنید ...
    موفق باشید

    یک دیدگاه بنویسید:


  • stk
    replied
    پاسخ : چگونه همه پایه های میکروکنترلر AVR را PWM کن

    سلام

    با تشکر

    یک دیدگاه بنویسید:


  • SAMAN.ASADI
    replied
    پاسخ : چگونه همه پایه های میکروکنترلر AVR را PWM کنیم ؟؟

    نوشته اصلی توسط stk
    سلام اقای مهندس با تشکر
    برنامه انگار error داره !!!
    درود بر شما ...
    کدوم خطش؟
    من دقیقا از سایت کپی گرفتم و بردم توی بسکام مشکلی نداشت ...
    خیلی راحت و بدون دردسر کامپایل شد ...

    یک دیدگاه بنویسید:


  • stk
    replied
    پاسخ : چگونه همه پایه های میکروکنترلر AVR را PWM کنیم ؟؟

    سلام اقای مهندس با تشکر
    برنامه انگار error داره !!!

    یک دیدگاه بنویسید:


  • SAMAN.ASADI
    replied
    پاسخ : چگونه همه پایه های میکروکنترلر AVR را PWM کن

    نوشته اصلی توسط stk
    سلام اقای مهندس با تشکر فراوان
    اقای مهندس این دو خط به زبان c هست به زبان بیسیک هم میفرمایید و یک نمونه برنامه کامل به زبان c و به زبان بیسیک
    میفرمایید تا محل قرار گیری این دو خط را ببینیم .با تشکر
    درود بر شما ...
    ببخشید که دیر شد ...
    این هم کد کامل برای بیسیک
    کد:
    '*****************************************************
    'Project          : 1 PWM
    'Resolution        : 100 States (0 To 99)
    'Date           : 23/Jan/2016
    'Time           : 23:37:44
    'Author          : Saman.Asadi  www.ECA.ir
    'Author's Email      : Saman.asadi.ir@gmail.com
    'http://www.eca.ir/forum2/index.php?topic=90246.0
    'Chip type         : ATmega8
    'Program type       : Application
    'AVR Core Clock frequency : 8  MHz
    '*****************************************************
    $regfile = "m8def.dat"                   'for ATmega8 or ATmega8A
    $crystal = 8000000
    Max_variable_pwm Alias 99
    Set_pwm Alias Max_variable_pwm
    Reset_pwm Alias 0
    
    Dim Counter_pwm As Byte , Pwm(3) As Byte
    
    'Config All =============================================
       Config Timer2 = Timer , Prescale = 8
       Enable Compare2
       On Compare2 T2
       ' Timer/Counter 2 initialization
       ' Clock source: System Clock
       ' Clock value: 1000.000 KHz
       ' Mode: CTC top=OCR2
       ' OC2 output: Disconnected
       Assr = &H00
       Tccr2 = &H0A
       Ocr2 = &H99
       Tcnt2 = &H00
       'Timer(s)/Counter(s) Interrupt(s) initialization
       Timsk = &H80
      'Global enable interrupts
      Enable Interrupts
      'Config Outputs
       Ddrd = &H01 Or Ddrd
    'End Config ============================================
    
      Dim X1 As Byte
    
      Do
     '******************************
    
      For X1 = 0 To 99 Step 1
       While Counter_pwm <> Max_variable_pwm : Wend
       Pwm(1) = X1
       Waitms 50
      Next X1
      For X1 = 99 To 0 Step -1
       While Counter_pwm <> Max_variable_pwm : Wend
       Pwm(1) = X1
       Waitms 50
      Next X1
     Loop
    End
    
    
    T2:
      If Counter_pwm > 0 Then
        If Counter_pwm = Pwm(1) Then Portd = &H01 Or Portd
      End If
      Decr Counter_pwm
      If Counter_pwm = 255 Then
        Counter_pwm = Max_variable_pwm
        Portd = &HFE And Portd
      End If
    Return
    موفق باشید

    یک دیدگاه بنویسید:


  • stk
    replied
    پاسخ : چگونه همه پایه های میکروکنترلر AVR را PWM کنیم ؟؟

    سلام اقای مهندس با تشکر فراوان
    اقای مهندس این دو خط به زبان c هست به زبان بیسیک هم میفرمایید و یک نمونه برنامه کامل به زبان c و به زبان بیسیک
    میفرمایید تا محل قرار گیری این دو خط را ببینیم .با تشکر

    یک دیدگاه بنویسید:


  • SAMAN.ASADI
    replied
    پاسخ : چگونه همه پایه های میکروکنترلر AVR را PWM کن

    درود بر تمامی دوستان ... به خصوص stk عزیز ...
    مشکل را یافتم ...
    مشکل عجیبی که تا الان به طور کاملا اتفاقی ندیده بودم و جالب اینجاست که پس از این همه مدت و این همه بازدید از دوستان حتی یک نفر هم پیدا نشد که این مشکل رو بیان کنه ...
    ببینید اگر ما زمان تغییر دادن []pwm را خیلی کم بگیریم باعث میشود در کار pwm اختلال پیش آید ...
    ما باید در نرم افزار تعریف کنیم که پیش از آنکه خواستیم آرایه pwm با اندیس مورد نظر را تغییر دهیم باید ابتدا صبر کنیم که زمان یک سیکل کاری PWM به پایان برسد سپس آن را تغییر دهیم ... دقیقا همان کاری که میکروکنترلر در PWM سخت افزاری انجام میدهد ...
    پس باید پیش از تغییر دیوتی سایکل ابتدا این شرط گذاشته شود ...
    کد در زبان سی(کدویژن و اتمل استودیو)
    کد:
    while(Counter_PWM != Max_Variable_PWM);
    کد در زبان بیسیک(بسکام)
    کد:
    While Counter_pwm <> Max_variable_pwm : Wend
    لازم به ذکر است که این مشکل زمانی پیش می آید که مقدار PWM را بخواهید افزایش دهید ...

    یک کد دیگری هم هست که پردازش کمتر میگیره ...
    کد در زبان سی(کدویژن و اتمل استودیو)
    کد:
    if(pwm[1] && Counter_PWM > pwm[1])while(Counter_PWM >= pwm[1]);
    کد در زبان بیسیک(بسکام)
    کد:
    If Pwm(1) > 0 And Counter_pwm > Pwm(1) Then While Counter_pwm >= Pwm(1) : Wend

    یک دیدگاه بنویسید:


  • zamanimahdi
    replied
    پاسخ : پاسخ : چگونه همه پایه های میکروکنترلر AVR را PWM کن

    نوشته اصلی توسط stk
    سلام اقای مهندس خسته نباشید
    من همه اینا رو چک کردم خازن100n گذاشتم قبل رگولاتور خازن 2200uf گذاشتم واچ داگ خاموش بود رست مقاومت بود و منبع تغذیه عوض کردم ولی همونه جالب اینجاست کار شو میکنه ولی بین کار خودش یک تک پرش بعضی اوقات دو پرش داره !!!!!!!! مندم شما هم تست کردید ؟ با تشکر
    منم تست کردم ی پرشی داره oo:

    یک دیدگاه بنویسید:


  • SAMAN.ASADI
    replied
    پاسخ : پاسخ : چگونه همه پایه های میکروکنترلر AVR را PWM کن

    نوشته اصلی توسط stk
    سلام اقای مهندس خسته نباشید
    من همه اینا رو چک کردم خازن100n گذاشتم قبل رگولاتور خازن 2200uf گذاشتم واچ داگ خاموش بود رست مقاومت بود و منبع تغذیه عوض کردم ولی همونه جالب اینجاست کار شو میکنه ولی بین کار خودش یک تک پرش بعضی اوقات دو پرش داره !!!!!!!! مندم شما هم تست کردید ؟ با تشکر
    درود بر شما
    حقیقتش نه ....
    امروز میخواستم وسایل از شرکت بیارم و خونه امتحانش کنم ... ولی متاسفانه فراموش کردم ...
    من با پروتئوس تست زدم و هیچ پرشی مشاهده نشد ....
    ولی حتما حتما فردا یعنی پنج شنبه وسایل رو از شرکت میارم خونه و امتحان میکنم ....
    موفق باشید ...

    یک دیدگاه بنویسید:


  • stk
    replied
    پاسخ : چگونه همه پایه های میکروکنترلر AVR را PWM کن

    سلام اقای مهندس خسته نباشید
    من همه اینا رو چک کردم خازن100n گذاشتم قبل رگولاتور خازن 2200uf گذاشتم واچ داگ خاموش بود رست مقاومت بود و منبع تغذیه عوض کردم ولی همونه جالب اینجاست کار شو میکنه ولی بین کار خودش یک تک پرش بعضی اوقات دو پرش داره !!!!!!!! مندم شما هم تست کردید ؟ با تشکر

    یک دیدگاه بنویسید:

لطفا صبر کنید...
X