اطلاعیه

Collapse
No announcement yet.

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

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

    برنامه ای برای کم نوری به پرنوری و عکس آن . . .

    نوشته اصلی توسط b.saeed65
    :applause: :applause: :wow: :applause: :applause:

    واقعا ممنون
    از پرنور به کم نورش همین الان روی برد داره کار میکنه :wow: اما از کم نور به پرنورش فقط دفعه اول کار میکنه و بعدش فقط از پرنور به کم نوره و یک چند ثانیه کلا خاموش دوباره از پرنور به کم نور فقط
    غیر ممکنه ...
    من همین الان دارم توی پروتئوس میبینم که داره کار میکنه ...
    دقیقا همین کد رو کپی بگیر و توی کدویژن paste کن
    و روی Build all project files کلیک کن
    [code=c]
    #include <tiny13a.h>
    #include <delay.h>

    #define Set_LED1 PORTB.0 = 1
    #define Set_LED2 PORTB.1 = 1
    #define Set_LED3 PORTB.2 = 1
    #define Set_LED4 PORTB.3 = 1
    #define Set_LED5 PORTB.4 = 1
    #define max_var_PWM 50

    unsigned char a = max_var_PWM , pwm[10];

    // Timer 0 output compare A interrupt service routine
    interrupt [TIM0_COMPA] void timer0_compa_isr(void)
    {
    if(a)
    {
    if(a == pwm[1])Set_LED1;
    if(a == pwm[2])Set_LED2;
    if(a == pwm[3])Set_LED3;
    if(a == pwm[4])Set_LED4;
    if(a == pwm[5])Set_LED5;
    }
    if(--a == 255)
    {
    a = max_var_PWM;
    PORTB=0;
    }
    }

    void main(void)
    {
    signed char x;
    // Crystal Oscillator division factor: 1
    CLKPR=0x80;
    CLKPR=0x00;

    PORTB=0x00;
    DDRB=0x1F;

    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: 1200 kHz
    // Mode: CTC top=OCR0A
    // OC0A output: Disconnected
    // OC0B output: Disconnected
    TCCR0A=0x02;
    TCCR0B=0x02;
    OCR0A=94;
    // Timer/Counter 0 Interrupt(s) initialization
    TIMSK0=0x04;
    // Global enable interrupts
    #asm("sei&quot

    while (1)
    {
    for(x=0;x<51;x++)
    {
    pwm[1]=x;
    delay_ms(10);
    }
    for(x=50;x>=0;x--)
    {
    pwm[1]=x;
    delay_ms(10);
    }
    }
    }
    [/code]



    فکر کنم فهمیدم مشکلت چیه ...
    مشکلتون اینه که متغیر x رو از نوع unsigned char تعریف کردید ...
    من گفتم که متغیر x رو باید از نوع با علامت signed char تعریف کنید ...
    معلومه که برنامه نویسی رو تازه شروع کردیاااااا ...
    بیشتر دقت کن

    یه نکته دیگه
    شما که از ترانزیستور استفاده میکنید بهم میگفتید تا بگم چیکار کنید که اگر به pwm های مورد نظر عدد کم بدهیم کم نور و زیاد بدهیم پرنورتر شود ...
    برای این منظور باید صفرها را یک و یک ها را صفر کنید ...
    مانند کد زیر :
    [code=c]
    #include <tiny13a.h>
    #include <delay.h>

    #define Set_LED1 PORTB.0 = 0
    #define Set_LED2 PORTB.1 = 0
    #define Set_LED3 PORTB.2 = 0
    #define Set_LED4 PORTB.3 = 0
    #define Set_LED5 PORTB.4 = 0
    #define max_var_PWM 50

    unsigned char a = max_var_PWM , pwm[10];

    // Timer 0 output compare A interrupt service routine
    interrupt [TIM0_COMPA] void timer0_compa_isr(void)
    {
    if(a)
    {
    if(a == pwm[1])Set_LED1;
    if(a == pwm[2])Set_LED2;
    if(a == pwm[3])Set_LED3;
    if(a == pwm[4])Set_LED4;
    if(a == pwm[5])Set_LED5;
    }
    if(--a == 255)
    {
    a = max_var_PWM;
    PORTB=31;
    }

    }

    void main(void)
    {
    signed char x;
    // Crystal Oscillator division factor: 1
    CLKPR=0x80;
    CLKPR=0x00;

    PORTB=0x00;
    DDRB=0x1F;

    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: 1200 kHz
    // Mode: CTC top=OCR0A
    // OC0A output: Disconnected
    // OC0B output: Disconnected
    TCCR0A=0x02;
    TCCR0B=0x02;
    OCR0A=94;
    // Timer/Counter 0 Interrupt(s) initialization
    TIMSK0=0x04;
    // Global enable interrupts
    #asm("sei&quot

    while (1)
    {
    for(x=0;x<51;x++)
    {
    pwm[1]=x;
    delay_ms(10);
    }
    for(x=50;x>=0;x--)
    {
    pwm[1]=x;
    delay_ms(10);
    }
    }
    }
    [/code]

    موفق باشید
    [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
    معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
    معرفی نرم افزار Codewizard PWM
    با من بیشتر آشنا شوید

    دیدگاه


      پاسخ : چگونه همه پایه های میکروکنترلر AVR را PWMکنیم؟ (ساخت PWM 5 با ATtiny13A)

      اقا سامان من برنامه نویسی Cکامل یاد ندارم
      برای اینکه بقیه پورت ها رو هم اینطوری کنیم باید چیکار کنیم؟
      http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

      دیدگاه


        پاسخ : چگونه همه پایه های میکروکنترلر AVR را PWMکنیم؟ (ساخت PWM 5 با ATtiny13A)

        نوشته اصلی توسط MAHDI ZAMANI
        اقا سامان من برنامه نویسی Cکامل یاد ندارم
        برای اینکه بقیه پورت ها رو هم اینطوری کنیم باید چیکار کنیم؟
        فقط باید آرایه مورد نظر را انتخاب و به آن مقدار بدیم
        مثلا همین مثال بالا اگر خواستیم همین کار رو با pwm2 انجام بدیم باید به جای [1]pwm عبارت [2]pwm را بگذاریم ...
        همین ...
        [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
        معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
        معرفی نرم افزار Codewizard PWM
        با من بیشتر آشنا شوید

        دیدگاه


          پاسخ : چگونه همه پایه های میکروکنترلر AVR را PWMکنیم؟ (ساخت PWM 5 با ATtiny13A)

          ممنون درست شد بله مشکل از همون متغییر x بود :applause:

          اره هنوز تازه کارم توی برنامه نویسی :nerd: :read:
          درد من تنهايي نيست ، بلکه مرگ ملتي است که گدايي را قناعت، بي عرضگي را صبر، و باتبسمي بر لبان اين حماقت را حکمت خداوند مي نامند. ---((گاندي))---

          دیدگاه


            پاسخ : چگونه همه پایه های میکروکنترلر AVR را PWMکنیم؟ (ساخت PWM 5 با ATtiny13A)

            نوشته اصلی توسط b.saeed65
            ممنون درست شد بله مشکل از همون متغییر x بود :applause:

            اره هنوز تازه کارم توی برنامه نویسی :nerd: :read:
            خواهش میکنم ... قابلی نداشت ...
            از برنامه آخری استفاده کن ... چون داری با ترانزیستور یا ULN یا .. کار میکنی ...

            تمرین و تلاش کنی خوب یاد میگیری ...
            [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
            معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
            معرفی نرم افزار Codewizard PWM
            با من بیشتر آشنا شوید

            دیدگاه


              پاسخ : چگونه همه پایه های میکروکنترلر AVR را PWMکنیم؟ (ساخت PWM 5 با ATtiny13A)

              اخه از برنامه ایرد میگیره :-(


              اضافه شده در تاریخ :
              الان برنامه درست شد منتهی میخوام یه کاری کنم بعد چن بار ک PWMتکرار شد ی چن ثانیه ثابت بمونه اونوقت چیکار کنم؟
              http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

              دیدگاه


                پاسخ

                نوشته اصلی توسط MAHDI ZAMANI
                الان برنامه درست شد منتهی میخوام یه کاری کنم بعد چن بار ک PWMتکرار شد ی چن ثانیه ثابت بمونه اونوقت چیکار کنم؟
                کل برنامه ای که داخل while هست رو باید توی یه حلقه for قرار داد ... و هر چند باری که خواستید تکرار کنید ... و پس از این حلقه باید یک تاخیری که مورد نظرتون هست رو بگذارید ... مثلا برای 2 ثانیه (2000) delay_ms
                یا اینکه اگر میخواین کم نوری به پرنوری سریعتر انجام بگیره باید زمان (10)delay_ms را کمتر و اگر کندتر خواستید باید زمانش رو بیشتر کنید ...
                موفق باشید
                [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                معرفی نرم افزار Codewizard PWM
                با من بیشتر آشنا شوید

                دیدگاه


                  پاسخ : چگونه همه پایه های میکروکنترلر AVR را PWMکنیم؟ (ساخت PWM 5 با ATtiny13A)

                  امکانش هست ک خودتون این تغیرات اعمال کنید من هر کار میکنم برنامه ارور داره

                  اضافه شده در تاریخ :
                  [code=c]#include <tiny13a.h>
                  #include <delay.h>

                  #define Set_LED1 PORTB.0 = 0

                  #define max_var_PWM 50

                  unsigned char a = max_var_PWM , pwm[10];

                  // Timer 0 output compare A interrupt service routine
                  interrupt [TIM0_COMPA] void timer0_compa_isr(void)
                  {
                  if(a)
                  {
                  if(a == pwm[1])Set_LED1;


                  }
                  if(--a == 255)
                  {
                  a = max_var_PWM;
                  PORTB=000001;




                  }

                  }

                  void main(void)
                  {
                  signed char x;

                  // Crystal Oscillator division factor: 1
                  CLKPR=0x80;
                  CLKPR=0x00;

                  PORTB=0x00;
                  DDRB=0x1F;

                  // Timer/Counter 0 initialization
                  // Clock source: System Clock
                  // Clock value: 1200 kHz
                  // Mode: CTC top=OCR0A
                  // OC0A output: Disconnected
                  // OC0B output: Disconnected
                  TCCR0A=0x02;
                  TCCR0B=0x02;
                  OCR0A=94;
                  // Timer/Counter 0 Interrupt(s) initialization
                  TIMSK0=0x04;
                  // Global enable interrupts
                  #asm("sei&quot



                  while (1)
                  {


                  for(x=0;x<51;x++)
                  {
                  pwm[1]=x;
                  delay_ms(10);
                  }
                  for(x=50;x>=0;x--)
                  {
                  pwm[1]=x;
                  delay_ms(10);
                  }






                  PORTB.0 =1;
                  delay_ms(300);
                  PORTB.0 =0;
                  delay_ms(300);



                  }

                  [/code]
                  برنامم اینه
                  http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

                  دیدگاه


                    پاسخ : چگونه همه پایه های میکروکنترلر AVR را PWMکنیم؟ (ساخت PWM 5 با ATtiny13A)

                    نوشته اصلی توسط MAHDI ZAMANI
                    [code=c]#include <tiny13a.h>
                    #include <delay.h>

                    #define Set_LED1 PORTB.0 = 0

                    #define max_var_PWM 50

                    unsigned char a = max_var_PWM , pwm[10];

                    // Timer 0 output compare A interrupt service routine
                    interrupt [TIM0_COMPA] void timer0_compa_isr(void)
                    {
                    if(a)
                    {
                    if(a == pwm[1])Set_LED1;
                    }
                    if(--a == 255)
                    {
                    a = max_var_PWM;
                    PORTB=000001;
                    }
                    }

                    void main(void)
                    {
                    signed char x;

                    // Crystal Oscillator division factor: 1
                    CLKPR=0x80;
                    CLKPR=0x00;

                    PORTB=0x00;
                    DDRB=0x1F;

                    // Timer/Counter 0 initialization
                    // Clock source: System Clock
                    // Clock value: 1200 kHz
                    // Mode: CTC top=OCR0A
                    // OC0A output: Disconnected
                    // OC0B output: Disconnected
                    TCCR0A=0x02;
                    TCCR0B=0x02;
                    OCR0A=94;
                    // Timer/Counter 0 Interrupt(s) initialization
                    TIMSK0=0x04;
                    // Global enable interrupts
                    #asm("sei&quot

                    while (1)
                    {


                    for(x=0;x<51;x++)
                    {
                    pwm[1]=x;
                    delay_ms(10);
                    }
                    for(x=50;x>=0;x--)
                    {
                    pwm[1]=x;
                    delay_ms(10);
                    }

                    PORTB.0 =1;
                    delay_ms(300);
                    PORTB.0 =0;
                    delay_ms(300);
                    }[/code]

                    برنامم اینه
                    خوب
                    الان برنامه شما یه آکولاد بسته کم داره ... آکولاد بسته مربوط به تابع اصلی main
                    دوم اینه
                    اینطور برنامه ننویس ...
                    [code=c]PORTB.0 =1;
                    delay_ms(300);
                    PORTB.0 =0;
                    delay_ms(300); [/code]
                    اون کاری که میخوای انجام بدی اینجا فرق میکنه ... چون پورت به طور مداوم صفر و یک میشه ... و اینجا کار نمیده ...
                    برای روشن و خاموش کردن باید اینطوری بنویسی
                    [code=c]pwm[1]=50; //LED on
                    delay_ms(300);
                    pwm[1]=0; //LED off
                    delay_ms(300);[/code]
                    و اگر خواستید این کار رو چند بار تکرار کنید باید اینطور نوشت (مثلا 10 بار)
                    [code=c]for(x=0;x<10;x++)
                    {
                    pwm[1]=50; //LED on
                    delay_ms(300);
                    pwm[1]=0; //LED off
                    delay_ms(300);
                    }[/code]
                    خوب ...
                    این تا اینجا
                    و اما برمیگردیم به اون سوال اولتون ...
                    اون برنامه ای که خواستید باید اینگونه نوشت
                    [code=c]while(1)
                    {
                    for(y=0;y<5;y++)
                    { for(x=0;x<51;x++)
                    {
                    pwm[1]=x;
                    delay_ms(10);
                    }
                    for(x=50;x>=0;x--)
                    {
                    pwm[1]=x;
                    delay_ms(10);
                    }
                    }
                    delay_ms(2000);
                    }[/code]
                    حالا چون نمیشه for اصلی را با متغیر x بنویسیم باید از یک متغیر دیگه استفاده کنیم ...
                    به خاطر همین باید یه متغیر دیگه تعریف کنیم ... مثلا اسمش رو میزاریم y
                    و حالا اگر خواستیم همین کار رو به طور همیشه تکرار کنیم باید درون یک حلقه while بنویسیم ...

                    موفق باشید
                    [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                    معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                    معرفی نرم افزار Codewizard PWM
                    با من بیشتر آشنا شوید

                    دیدگاه


                      پاسخ : چگونه همه پایه های میکروکنترلر AVR را PWMکنیم؟ (ساخت PWM 5 با ATtiny13A)

                      این برنامه ها رو با بسکام میشه نوشت چطوری؟ اخه من بسکام خیلی خیلی مهارت بیشتری دارم تا زبان cالانم حدود یک هفته هست ک کتابای زبانcرو میخونم
                      من تو بسکام برایattiny13برنامه مینویسم ی اخطار با اسم out of sram هم میده اینو چطوری درست کنم؟
                      http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

                      دیدگاه


                        ساخت 5 PWM با ATtiny13A (با دقت 50 پله و 250 هرتز) بسکام

                        نوشته اصلی توسط MAHDI ZAMANI
                        این برنامه ها رو با بسکام میشه نوشت چطوری؟
                        سلام
                        بله میشه ...
                        بفرمایید ...
                        [code=qbasic]$regfile = "attiny13a.dat"
                        $crystal = 9600000
                        $hwstack = 10
                        $swstack = 10
                        $framesize = 10

                        Led1 Alias Portb.0
                        Led2 Alias Portb.1
                        Led3 Alias Portb.2
                        Led4 Alias Portb.3
                        Led5 Alias Portb.4
                        Max_var_pwm Alias 50

                        Dim A As Byte , Pwm(10)as Byte , X As Byte , Y As Byte
                        A = Max_var_pwm
                        ' Crystal Oscillator division factor: 1
                        Clkpr = &H80
                        Clkpr = &H00

                        Portb = &H00
                        Ddrb = &H1F

                        Config Timer0 = Timer , Prescale = 8
                        Enable Compare0a
                        On Compare0a Tim0_compa
                        ' Timer/Counter 0 initialization
                        ' Clock source: System Clock
                        ' Clock value: 1200 kHz
                        ' Mode: CTC top=OCR0A
                        Tccr0a = &H02
                        Tccr0b = &H02
                        Ocr0a = 94
                        ' Timer/Counter 0 Interrupt(s) initialization
                        Timsk0 = &H04
                        ' Global enable interrupts
                        Enable Interrupts

                        Do
                        For Y = 0 To 10
                        For X = 0 To 50
                        Pwm(1) = X
                        waitms 10
                        Next X
                        For X = 50 To 0
                        Pwm(1) = X
                        waitms 10
                        Next X
                        Next Y
                        Waitms 2000

                        For X = 1 To 5
                        Pwm(1) = 50
                        Waitms 300
                        Pwm(1) = 0
                        Waitms 300
                        Next X
                        Loop
                        End

                        Tim0_compa:
                        If A > 0 Then
                        If A = Pwm(1) Then Set led1
                        If A = Pwm(2) Then Set led2
                        If A = Pwm(3) Then Set led3
                        If A = Pwm(4) Then Set led4
                        If A = Pwm(5) Then Set Led5
                        End If
                        Decr A
                        If A = 255 Then
                        A = Max_var_pwm
                        Portb = 0
                        End If
                        Return[/code]


                        نوشته اصلی توسط MAHDI ZAMANI
                        اخه من بسکام خیلی خیلی مهارت بیشتری دارم تا زبان cالانم حدود یک هفته هست ک کتابای زبانcرو میخونم
                        بله ... بسکام هم خوبه ... البته اولش خوبه !!! بعدها که میخواین پیشرفته و حرفه ای برنامه بنویسی دیگه به بن بست میخورید ...
                        ولی به نظر من ابتدا زبان سی را خوب یاد بگیرید و بعدا میکرو را شروع کنید ...

                        نوشته اصلی توسط MAHDI ZAMANI
                        من تو بسکام برایattiny13برنامه مینویسم ی اخطار با اسم out of sram هم میده اینو چطوری درست کنم؟
                        این مشکل به خاطر اینه که حافظه STACK رو خوب تعریف نکردید ...
                        برای این منظور باید از منوی Chip<---Compiler<---Option بروید و HWstack و Soft Stack و Framesize هر سه را 10 کنید ...
                        و Add to Code را بزنید و OK بزنید ... میبینید که در برنامه این چند خط اضاف شده ...
                        [code=qbasic]
                        $regfile = "attiny13a.dat"
                        $crystal = 9600000
                        $hwstack = 10
                        $swstack = 10
                        $framesize = 10
                        [/code]
                        این کدها را به ابتدای برنامه ببرید ...
                        برنامه را کامپایل کنید ...
                        مرحله بعدی
                        برو خوش باش :mrgreen:

                        موفق باشید
                        [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                        معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                        معرفی نرم افزار Codewizard PWM
                        با من بیشتر آشنا شوید

                        دیدگاه


                          پاسخ : چگونه همه پایه های میکروکنترلر AVR را PWMکنیم؟ (ساخت PWM 5 با ATtiny13A)

                          Tccr0a = &H02
                          Tccr0b = &H02
                          Ocr0a = 94 سلام این خطوط در برنامه چیکاری انجام میدن؟
                          خیلی ممنون واقعا کمک های بزرگی کردید

                          اضافه شده در تاریخ :
                          Clkpr = &H80
                          Clkpr = &H00

                          Portb = &H00
                          Ddrb = &H1F معنی این دوتا خط در. برنامه چیه؟
                          http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

                          دیدگاه


                            پاسخ : چگونه همه پایه های میکروکنترلر AVR را PWMکنیم؟ (ساخت PWM 5 با ATtiny13A)

                            نوشته اصلی توسط MAHDI ZAMANI
                            Tccr0a = &H02
                            Tccr0b = &H02
                            Ocr0a = 94 سلام این خطوط در برنامه چیکاری انجام میدن؟
                            سلام
                            برای تنظیمات رجیستر تایمر ...
                            چون من بسکام رو خوب بلد نیستم این خطوط رو گذاشتم ...
                            به این خطوط کاری نداشته باشید

                            نوشته اصلی توسط MAHDI ZAMANI
                            خیلی ممنون واقعا کمک های بزرگی کردید
                            خواهش میکنم ... کاری نکردم وظیفه بود
                            برای تشکر روی دکمه تشکر کلیک کنید

                            نوشته اصلی توسط MAHDI ZAMANI
                            Clkpr = &H80
                            Clkpr = &H00
                            این دو خط هم برای اینه که تقسیم کننده فرکانس اصلی رو یک کنه ... که میکرو روی سرعت اصلی حرکت کنه و کندتر کار نکنه ...

                            نوشته اصلی توسط MAHDI ZAMANI
                            Portb = &H00
                            Ddrb = &H1F معنی این دوتا خط در. برنامه چیه؟
                            این دو رجیستر مربوط به تنظیمات پورت هست ... البته یه رجیستر دیگه به نام PIN هم وجود داره ...
                            خط دوم توی بسکام اینطور نوشته میشه ...
                            [code=qbasic]Config Portb = Output[/code]
                            هر کدام از بیتهای رجیستر DDRB یک شود آن بیت مربوط به پورت خروجی خواهد شد ...
                            یعنی اگر 3=DDRB بود PORTB.0 و PORTB.1 خروجی خواهد شد ...
                            و هر کدام که صفر هست ورودی محسوب میشه ...
                            توی این مثال PORTB.2 و PORTB.3 و PORTB.4 و PORTB.5 و PORTB.6 و PORTB.7 ورودی هستند
                            و اگر در حالت ورودی رجیستر PORT آن بیت یک شود Pull-UP داخلی میکرو فعال میشه ...
                            رجیستر PIN داده را از روی اون پورت میخونه ... فرقی نمیکنه ورودی باشه یا خروجی ... فقط میخونه ...

                            موفق باشید
                            [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                            معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                            معرفی نرم افزار Codewizard PWM
                            با من بیشتر آشنا شوید

                            دیدگاه


                              پاسخ : چگونه همه پایه های میکروکنترلر AVR را PWMکنیم؟ (ساخت PWM 5 با ATtiny13A)

                              حالا تو بسکام بخوایم نور رو کم و زیاد کنیم باید چیکار کنیم؟ بخوایم ثابت بمونه؟

                              اضافه شده در تاریخ :
                              ینی اینکه تو بسکام دستوراتم رو با دستورات بسکام با این صورتfor(x=0;x<10;x++)
                              {
                              pwm[1]=50; //LED on
                              delay_ms(300);
                              pwm[1]=0; //LED off
                              delay_ms(300);
                              }
                              بنویسم داخل حلقه DO-LOOP?
                              http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

                              دیدگاه


                                پاسخ : چگونه همه پایه های میکروکنترلر AVR را PWMکنیم؟ (ساخت PWM 5 با ATtiny13A)

                                نوشته اصلی توسط MAHDI ZAMANI
                                ینی اینکه تو بسکام دستوراتم رو با دستورات بسکام با این صورتfor(x=0;x<10;x++)
                                {
                                pwm[1]=50; //LED on
                                delay_ms(300);
                                pwm[1]=0; //LED off
                                delay_ms(300);
                                }
                                بنویسم داخل حلقه DO-LOOP?
                                برنامه رو که براتون گذاشتم ...
                                http://www.eca.ir/forum2/index.php?topic=90246.msg648834#msg648834
                                قبلا هم اشاره کردم اگر خواستید ثابت بمونه باید اون آرایه رو برابر با 50 و اگر خواستید اون رو خاموشش کنید اون رو برابر صفر کنید ...

                                بگذار راحتتون کنم ...
                                این کد رو بگذار اون اول برنامه ...
                                [code=qbasic]Set_led1 Alias Pwm(1) = 50
                                Set_led2 Alias Pwm(2) = 50
                                Set_led3 Alias Pwm(3) = 50
                                Set_led4 Alias Pwm(4) = 50
                                Set_led5 Alias Pwm(5) = 50

                                Reset_led1 Alias Pwm(1) = 0
                                Reset_led2 Alias Pwm(2) = 0
                                Reset_led3 Alias Pwm(3) = 0
                                Reset_led4 Alias Pwm(4) = 0
                                Reset_led5 Alias Pwm(5) = 0[/code]
                                هر جا که گفتی set_led1 ال ای دی یک روشن میشه و هرجا که گفتی Reset_led1 ال ای دی یک خاموش میشه

                                موفق باشید
                                [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                                معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                                معرفی نرم افزار Codewizard PWM
                                با من بیشتر آشنا شوید

                                دیدگاه

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