اطلاعیه

Collapse
No announcement yet.

ذکر چند مثال ساده که توشون از SLEEP استفاده کنیم؟

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

    ذکر چند مثال ساده که توشون از SLEEP استفاده کنیم؟

    سلام
    ممنون میشم دوستان چند تا پروژه ساده بهم بگن که توش از یکی از مد های SLEEP ستفاده شده باشه
    خودم 2-3 تا پروژه نوشتم(با وقفه خارجی میکرو از خواب بیدار میشه)....ممنون میشم دوستان مثال هایی بزنن ... :applause:
    اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

    اگه دوس دارید سریع به جواب برسید :
    1) قبل از پرسیدن سوال، بسرچید.
    2) سوالاتون رو با جزئیات کامل مطرح کنید.

    #2
    پاسخ : ذکر چند مثال ساده که توشون از SLEEP استفاده کنیم؟

    نوشته اصلی توسط md3848
    سلام
    ممنون میشم دوستان چند تا پروژه ساده بهم بگن که توش از یکی از مد های SLEEP ستفاده شده باشه
    خودم 2-3 تا پروژه نوشتم(با وقفه خارجی میکرو از خواب بیدار میشه)....ممنون میشم دوستان مثال هایی بزنن ... :applause:
    واسه پروژه هایی که باتری براشون مهمه. مثل ریموت کنترل های دستی که یه باتری کوچیک دارن.

    تمامی کلید ها به وقفه وصل شدن و با فشره شدنشون میکرو از مد اسلیپ بیدار میشه بعد کارش رو انجام میده بعد دوباره میره تو اسلیپ تا وقتی دوباره یه کلیدی فشرده بشه.
    [glow=green,2,300][b]بشر ممکن الخطاست
    درخت هرچه پربار تر سر به زیر تر[/glow]

    دیدگاه


      #3
      پاسخ : ذکر چند مثال ساده که توشون از SLEEP استفاده کنیم؟

      تو بهعضی از مد های sleep میشه میکرو رو با تایمر2 بیدار کرد، حالا یه سوال، فرض کن وقفه سر ریز یا مقایسه رخ میده، میکرو بیدار میشه و کد های داخل وقفه مورد نظر اجرا میشه

      حالا چرا نمیشه بعد از اتمام کد های وقفه، به عنوان آخرین کد، دستور رفتن میکرو به مد Sleep رو قرار داد؟؟؟
      من تست کردم نمیشه...
      دلیلش رو میدونی/؟
      اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

      اگه دوس دارید سریع به جواب برسید :
      1) قبل از پرسیدن سوال، بسرچید.
      2) سوالاتون رو با جزئیات کامل مطرح کنید.

      دیدگاه


        #4
        پاسخ : ذکر چند مثال ساده که توشون از SLEEP استفاده

        نوشته اصلی توسط md3848
        تو بهعضی از مد های sleep میشه میکرو رو با تایمر2 بیدار کرد، حالا یه سوال، فرض کن وقفه سر ریز یا مقایسه رخ میده، میکرو بیدار میشه و کد های داخل وقفه مورد نظر اجرا میشه

        حالا چرا نمیشه بعد از اتمام کد های وقفه، به عنوان آخرین کد، دستور رفتن میکرو به مد Sleep رو قرار داد؟؟؟
        من تست کردم نمیشه...
        دلیلش رو میدونی/؟
        اینجور موقع ها به میکرو باید کلک زد. (علتش اینه که اگه بره تو اسلیپ میمونه تو سابروتین وقفه)

        تو حلقه بینهایت اصلی برنامه که مدام اجرا میشه بنویس اگه یه متغری مثل a 1 بود، a رو صفر کنه بعد بره به اسلیپ.

        حالا تو روال وقفه اگه خواستی میکرو بخوابه بنویس a رو 1 کنه. بعد از روال بره بیرون و برگرده به حلقه بی نهایت اصلی برنامه. خود میکرو وقتی به اون if رسید میخوابه.
        [glow=green,2,300][b]بشر ممکن الخطاست
        درخت هرچه پربار تر سر به زیر تر[/glow]

        دیدگاه


          #5
          پاسخ : ذکر چند مثال ساده که توشون از SLEEP استفاده کنیم؟

          نوشته اصلی توسط md3848
          تو بهعضی از مد های sleep میشه میکرو رو با تایمر2 بیدار کرد، حالا یه سوال، فرض کن وقفه سر ریز یا مقایسه رخ میده، میکرو بیدار میشه و کد های داخل وقفه مورد نظر اجرا میشه

          حالا چرا نمیشه بعد از اتمام کد های وقفه، به عنوان آخرین کد، دستور رفتن میکرو به مد Sleep رو قرار داد؟؟؟
          من تست کردم نمیشه...
          دلیلش رو میدونی/؟
          سلام به همه
          رفتن به حالت sleep رو در روتین وقفه چجوری نوشتی؟
          ای خدا ، من باید از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از این راه طعنه زنند. باید به آن سنگدلانی که علم را بهانه کرده و به دیگران فخر میآ*فروشند، ثابت کنم که خاک پای من هم نخواهند شد. باید همه آن تیره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترین و افتاده ترین مرد روی زمین باشم.
          شهید دکتر مصطفی چمران
          اللهم صل علی محمد و ال محمد و عجل فرجهم
          ; C is not for children

          دیدگاه


            #6
            پاسخ : ذکر چند مثال ساده که توشون از SLEEP استفاده کنیم؟

            میکرو به مقفه مورد نظر بره sleep غیر فعال میشه....حالا من میخوام تو وقفه فعالش کنم نمیشه....
            کد هاش رو اینجا گزاشتم
            http://www.eca.ir/forum2/index.php?topic=113911.0
            اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

            اگه دوس دارید سریع به جواب برسید :
            1) قبل از پرسیدن سوال، بسرچید.
            2) سوالاتون رو با جزئیات کامل مطرح کنید.

            دیدگاه


              #7
              پاسخ : ذکر چند مثال ساده که توشون از SLEEP استفاده

              نوشته اصلی توسط md3848
              میکرو به مقفه مورد نظر بره sleep غیر فعال میشه....حالا من میخوام تو وقفه فعالش کنم نمیشه....
              کد هاش رو اینجا گزاشتم
              http://www.eca.ir/forum2/index.php?topic=113911.0
              چند نکته:
              1- چه در حالت خواب و چه غیره هر وقت میکرو به سابروتین وقفه ای وارد بشه به طور خودکار وقفه سراسری غیر فعال میشه و با اتمام وقفه (پس از return) وقفه سراسری دوباره به صورت خودکار فعال میشه
              پس اگر در وقفه شما خواستین به خواب برین در واقع وقفه سراسری میکرو پاک شده و باید قبل از خواب اون رو فعال کنین
              این همون دلیلیه که باعث میشه وقفه در وقفه دیگه ای رخ نده و هر وقفه با توجه به اولویتش فراخونی بشه
              که اگر شما بخواین وقفه های تو در تو داشته باشین باید وقفه سراسری رو توی هر سابروتین وقفه فعال کنین
              2- تو کد نوشته شده شما برای رفتن به حالت خواب ابتدا دارین بیت های [2:0]SM رو تنظیم میکنین بعد دستور اسمبلی SLEEP رو ارسال میکنین و بعد بیت SE رو فعال میکنین اما این کار غلطه و حالت خواب ممکنه رخ بده اما نه دقیقا توی زمانی که خود برنامه نویس تعیین کرده
              شما باید اول SE رو فعال کنین بعد بیت های [2:0]SM رو تنظیم کنین و بعد دستور اسمبلی SLEEP رو اجرا کنین
              توجه:
              تابع sleep_enable();
              این تابع درواقع بیتSE رو یک میکنه
              پس اول باید این تابع نوشته بشه
              تابع های خواب مثل idle();
              این توابع در واقع ابتدا بیت های [2:0] SM رو تنظیم میکنن و بعد دستور اسمبلی SLEEP رو ارسال میکنن
              پس باید در مرحله بعد از تابع sleep_enable() نوشته بشن
              مثال برای رفتن به حالت خواب idle() و بیدار شدن توسط وقفه:
              sleep_enable();
              #asm("sei"
              idle();

              نکته : بهتره که از وقفه های تو در تو استفاده نشه (یعنی وقفه سراسری توی سابروتین وقفه ها فعال نشه) چون اینجوری نیاز به دقت زیاد و آشنایی زیاد به مهندسی میکروکنترلر ها داره در غیر اینصورت با مشکل روبه رو میشین.
              ای خدا ، من باید از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از این راه طعنه زنند. باید به آن سنگدلانی که علم را بهانه کرده و به دیگران فخر میآ*فروشند، ثابت کنم که خاک پای من هم نخواهند شد. باید همه آن تیره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترین و افتاده ترین مرد روی زمین باشم.
              شهید دکتر مصطفی چمران
              اللهم صل علی محمد و ال محمد و عجل فرجهم
              ; C is not for children

              دیدگاه


                #8
                پاسخ : ذکر چند مثال ساده که توشون از SLEEP استفاده کنیم؟

                ممنون از شما...میگم پس این کد #asm("sleep&quot برا چیه؟
                مثل این که شما بهش اشاره نکردید
                اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

                اگه دوس دارید سریع به جواب برسید :
                1) قبل از پرسیدن سوال، بسرچید.
                2) سوالاتون رو با جزئیات کامل مطرح کنید.

                دیدگاه


                  #9
                  پاسخ : ذکر چند مثال ساده که توشون از SLEEP استفاده

                  نوشته اصلی توسط مهدی رهی
                  سلام به همه
                  رفتن به حالت sleep رو در روتین وقفه چجوری نوشتی؟
                  من C++ تو AVR کار نکردم. اساس کار رو توضیح میدم.

                  شما یه متغیر تعریف کن به اسم sleepflag که تو هر ساب روتینی خواستی به حالت اسلیپ بری، بنویس sleepflag=1 .

                  تو تابع main و تو یه حلقه بینهایتی که همیشه اجرا میشه و بعد از انمام سابروتین ها پوینتر برنامه دوباره به اونجا میره، بنویس

                  [code=cpp]
                  if(sleepflag == 1)
                  {
                  sleepflag = 0
                  asm(sleep)
                  }
                  [/code]

                  اون دستور اسمبلی رو با هر چیزی که میکرو رو به حالت اسلیپ ببره جایگزین میتونید بکنید.

                  حالا توی اون سابروتین بنویس sleepflag = 1 و برنامه رو بذار به حال خودش که برگرده به تابع main . خودش وقتی به اوون تیکه کد برسه میخوابه.
                  [glow=green,2,300][b]بشر ممکن الخطاست
                  درخت هرچه پربار تر سر به زیر تر[/glow]

                  دیدگاه


                    #10
                    پاسخ : ذکر چند مثال ساده که توشون از SLEEP استفاده کنیم؟

                    نوشته اصلی توسط md3848
                    ممنون از شما...میگم پس این کد #asm("sleep&quot برا چیه؟
                    مثل این که شما بهش اشاره نکردید
                    این دستور #asm("sleep&quot همون دستور اسمبلی SLEEP هستش که تو پست قبلی بجای نوشتن #asm("sleep&quot میگفتم اسمبلی SLEEP و هیچ فرقی با هم ندارن
                    و توی کدویژن توی خود توابع خواب پس از تنظیم [2:0]SM برای حالت خواب مد نظر به طور خودکار دستور اسمبلی SLEEP یا همون #asm("sleep&quot ارسال میشه
                    ای خدا ، من باید از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از این راه طعنه زنند. باید به آن سنگدلانی که علم را بهانه کرده و به دیگران فخر میآ*فروشند، ثابت کنم که خاک پای من هم نخواهند شد. باید همه آن تیره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترین و افتاده ترین مرد روی زمین باشم.
                    شهید دکتر مصطفی چمران
                    اللهم صل علی محمد و ال محمد و عجل فرجهم
                    ; C is not for children

                    دیدگاه


                      #11
                      پاسخ : ذکر چند مثال ساده که توشون از SLEEP استفاده کنیم؟

                      دوست عزیز اگر پروژه خاصی تو دستت نیست سریعا و در اولین فرصت (همین حالا) برو سراغ IDE قدرتمند Atmel Studio 6 یا ورژن های بالاتر
                      کدویژن فقط باعث میشه نتونی اصولی میکرو هارو یاد بگیری و کمکی که بهت میکنه اینه که اصول رو خودش انجام میده و شما فقط کدهارو مینویسی اما توی atmel studio 6 به بالا شما اصول رو هم یاد میگیری
                      یادگیری atmel studio شاید حدود 1 ماه وقتت رو بگیره که البته توی انجمن eca بخش هایی هم برای آموزش این IDE قدرتمند باز شده
                      ای خدا ، من باید از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از این راه طعنه زنند. باید به آن سنگدلانی که علم را بهانه کرده و به دیگران فخر میآ*فروشند، ثابت کنم که خاک پای من هم نخواهند شد. باید همه آن تیره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترین و افتاده ترین مرد روی زمین باشم.
                      شهید دکتر مصطفی چمران
                      اللهم صل علی محمد و ال محمد و عجل فرجهم
                      ; C is not for children

                      دیدگاه


                        #12
                        پاسخ : ذکر چند مثال ساده که توشون از SLEEP استفاده کنیم؟

                        خب :wow: ممنون از دوستان مشکل حل شد......من اینجا 3 پروژه رو میزارم....بدون sleep با sleep (با ریجستر و با کتابخانه) ..... تا بقیه هم استفاده کنن(البته به زودی به کمک شما دوستان کامل یادش میگیرم و یه مطلب کامل دربارش مینویسم :nice: :nice: :nice: :nice: :nice::nice

                        sleep با کتابخانه
                        کد:
                        #include <mega16.h>
                        #include <sleep.h>
                        #include <stdlib.h>
                        #include <lcd.h>
                        #asm
                          .equ __lcd_port=0x1B ;PORTA
                        #endasm
                         
                         
                        int i = 0;
                        int Second=0, Minute=59, Hour=23;
                        char Str_Second[1],Str_Minute[1],Str_Hour[1];
                         
                         
                        interrupt[TIM2_COMP] void Timer_Counter2_comp()
                        {
                          i++;
                         
                          if(i == 125)
                          {
                            Second++;
                        
                            if(Second==60){Second=0; Minute++;}
                            if(Minute==60){Minute=0; Hour++;}
                            if(Hour==24){Hour=0;}
                        
                            itoa(Hour,Str_Hour);
                            lcd_gotoxy(4,1);
                            if(Hour<10)lcd_puts("0");
                            lcd_puts(Str_Hour);
                            lcd_gotoxy(6,1); lcd_putchar(':');
                            //////////////////////////////////
                            itoa(Minute,Str_Minute);
                            lcd_gotoxy(7,1);
                            if(Minute<10)lcd_puts("0");
                            lcd_puts(Str_Minute);
                            lcd_gotoxy(9,1); lcd_putchar(':');
                            //////////////////////////////////
                            itoa(Second,Str_Second);
                            lcd_gotoxy(10,1);
                            if(Second<10)lcd_puts("0");
                            lcd_puts(Str_Second);
                            
                            i = 0; 
                          }
                            
                          #asm("sei")
                          //idle();
                          sleep_enable(); 
                        }
                         
                         
                        void main(void)
                        {
                          lcd_init(16);
                          lcd_gotoxy(0,0);lcd_puts("Sleep Library"); 
                            
                          // TIMER2
                          // Clock Timer2 = CLK/256               >>>>> CS20 = 0, CS21 = 1, CS22 = 1
                          // Mode = CTC                     >>>>> WGM20 = 0, WGM21 = 1
                          // Timer/Counter Output Compare Match Interrupt Enable >>>>> OCIE2 = 1
                          TCCR2 = (0<<FOC2) | (0<<WGM20) | (0<<COM21) | (0<<COM20) | (1<<WGM21) | (1<<CS22) | (1<<CS21) | (0<<CS20);
                          TIMSK = (1<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<OCIE0) | (0<<TOIE0);
                          //TIFR = (0<<OCF2) | (0<<TOV2)  | (0<<ICF1)  | (0<<OCF1A) | (0<<OCF1B) | (0<<TOV1) | (0<<OCF0) | (0<<TOV0);
                          //ASSR = (0<<AS2)  | (0<<TCN2UB) | (0<<OCR2UB) | (0<<TCR2UB);
                          TCNT2 = 0;
                          OCR2 = 250;
                          #asm("sei")
                          
                          sleep_enable(); 
                          idle();
                          
                          while(1);
                        }


                        sleep با ریجستر
                        [code=c]#include <mega16.h>
                        #include <stdlib.h>
                        #include <lcd.h>
                        #asm
                        .equ __lcd_port=0x1B ;PORTA
                        #endasm


                        int i = 0;
                        int Second=55, Minute=59, Hour=23;
                        char Str_Second[1],Str_Minute[1],Str_Hour[1];


                        interrupt[TIM2_COMP] void Timer_Counter2_comp()
                        {
                        i++;

                        if(i == 125)
                        {
                        Second++;

                        if(Second==60){Second=0; Minute++;}
                        if(Minute==60){Minute=0; Hour++;}
                        if(Hour==24){Hour=0;}

                        itoa(Hour,Str_Hour);
                        lcd_gotoxy(4,1);
                        if(Hour<10)lcd_puts("0"
                        lcd_puts(Str_Hour);
                        lcd_gotoxy(6,1); lcd_putchar(':'
                        //////////////////////////////////
                        itoa(Minute,Str_Minute);
                        lcd_gotoxy(7,1);
                        if(Minute<10)lcd_puts("0"
                        lcd_puts(Str_Minute);
                        lcd_gotoxy(9,1); lcd_putchar(':'
                        //////////////////////////////////
                        itoa(Second,Str_Second);
                        lcd_gotoxy(10,1);
                        if(Second<10)lcd_puts("0"
                        lcd_puts(Str_Second);

                        i = 0;
                        }

                        #asm("sei&quot
                        MCUCR = (1<<SE); // Enable Sleep = True
                        }


                        void main(void)
                        {
                        lcd_init(16);
                        lcd_gotoxy(0,0);lcd_puts("Sleep Register"

                        // TIMER2
                        // Clock Timer2 = CLK/256 >>>>> CS20 = 0, CS21 = 1, CS22 = 1
                        // Mode = CTC >>>>> WGM20 = 0, WGM21 = 1
                        // Timer/Counter Output Compare Match Interrupt Enable >>>>> OCIE2 = 1
                        TCCR2 = (0<<FOC2) | (0<<WGM20) | (0<<COM21) | (0<<COM20) | (1<<WGM21) | (1<<CS22) | (1<<CS21) | (0<<CS20);
                        TIMSK = (1<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<OCIE0) | (0<<TOIE0);
                        //TIFR = (0<<OCF2) | (0<<TOV2) | (0<<ICF1) | (0<<OCF1A) | (0<<OCF1B) | (0<<TOV1) | (0<<OCF0) | (0<<TOV0);
                        //ASSR = (0<<AS2) | (0<<TCN2UB) | (0<<OCR2UB) | (0<<TCR2UB);
                        TCNT2 = 0;
                        OCR2 = 250;
                        #asm("sei&quot

                        MCUCR = (1<<SE); // Enable Sleep = True
                        MCUCR = (0<<SM2) | (0<<SM1) | (0<<SM0) | (0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00); // Select Mode = idle
                        #asm("sleep&quot

                        while(1);
                        }[/code]


                        بدون sleep
                        [code=c]#include <mega16.h>
                        #include <stdlib.h>
                        #include <lcd.h>
                        #asm
                        .equ __lcd_port=0x1B ;PORTA
                        #endasm


                        int i = 0;
                        int Second=0, Minute=59, Hour=23;
                        char Str_Second[1],Str_Minute[1],Str_Hour[1];


                        interrupt[TIM2_COMP] void Timer_Counter2_comp()
                        {
                        i++;

                        if(i == 125)
                        {
                        Second++;

                        if(Second==60){Second=0; Minute++;}
                        if(Minute==60){Minute=0; Hour++;}
                        if(Hour==24){Hour=0;}

                        itoa(Hour,Str_Hour);
                        lcd_gotoxy(4,1);
                        if(Hour<10)lcd_puts("0"
                        lcd_puts(Str_Hour);
                        lcd_gotoxy(6,1); lcd_putchar(':'
                        //////////////////////////////////
                        itoa(Minute,Str_Minute);
                        lcd_gotoxy(7,1);
                        if(Minute<10)lcd_puts("0"
                        lcd_puts(Str_Minute);
                        lcd_gotoxy(9,1); lcd_putchar(':'
                        //////////////////////////////////
                        itoa(Second,Str_Second);
                        lcd_gotoxy(10,1);
                        if(Second<10)lcd_puts("0"
                        lcd_puts(Str_Second);

                        i = 0;
                        }
                        }


                        void main(void)
                        {
                        // TIMER2
                        // Clock Timer2 = CLK/256 >>>>> CS20 = 0, CS21 = 1, CS22 = 1
                        // Mode = CTC >>>>> WGM20 = 0, WGM21 = 1
                        // Timer/Counter Output Compare Match Interrupt Enable >>>>> OCIE2 = 1
                        TCCR2 = (0<<FOC2) | (0<<WGM20) | (0<<COM21) | (0<<COM20) | (1<<WGM21) | (1<<CS22) | (1<<CS21) | (0<<CS20);
                        TIMSK = (1<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<OCIE0) | (0<<TOIE0);
                        //TIFR = (0<<OCF2) | (0<<TOV2) | (0<<ICF1) | (0<<OCF1A) | (0<<OCF1B) | (0<<TOV1) | (0<<OCF0) | (0<<TOV0);
                        //ASSR = (0<<AS2) | (0<<TCN2UB) | (0<<OCR2UB) | (0<<TCR2UB);
                        TCNT2 = 0;
                        OCR2 = 250;

                        lcd_init(16);
                        #asm("sei&quot

                        lcd_gotoxy(0,0);lcd_puts("WithOut Sleep."

                        while(1);
                        }[/code]



                        ولی یه مشکل : جریان مصرفی مدار تو هر سه حالت تقریبا برابر 0.78mA بود.....من فک میکردم میکرو بره تو مد SLEEP جریان مصرفی کاهش پیدا میکنه....البته شاید چون تو مد IDLE هست میکرو و تو این مد نسبت به بقیه مد های دیگه، زیرمجموعه ها بیشتری فعال هستن لذا شاید به این خاطر باشه.....

                        کسی نظری نداره؟؟؟؟



                        ممنون از شما
                        اتمل 6 بمونه برا تابستون یا بین دو ترم....دیگه کم کم باید برم دانشگاه....
                        شاید همون دانشگاه شروعش کردم....
                        ممنون...


                        بدبختی کریستال 32.768 کیلو رو هم ندارم تا بتونم ساعت رو تو مد های PowerSave تست کنم...و ببینم که جریان کاهش پیدا میکنه یا نه...
                        پروژه دیگه ای غیر از این هم فعلا به ذهنم نمیرسه :mrgreen:چیزی به ذهن شما میرسه؟ :redface:
                        اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

                        اگه دوس دارید سریع به جواب برسید :
                        1) قبل از پرسیدن سوال، بسرچید.
                        2) سوالاتون رو با جزئیات کامل مطرح کنید.

                        دیدگاه


                          #13
                          پاسخ : ذکر چند مثال ساده که توشون از SLEEP استفاده کنیم؟

                          این جریانی که گفتی فقط برای میکرو هستش یا کل مدار؟ (مثلا LCD)
                          اگر براتون مقدوره یکبار بدون مد sleep و یکبار با مد sleep جریان مصرفی رو اندازه بگیرید ببینیم چقدر تفاوت دارند.
                          ---------
                          .
                          .
                          ...........

                          دیدگاه


                            #14
                            پاسخ : ذکر چند مثال ساده که توشون از SLEEP استفاده کنیم؟

                            مدار+LCD
                            تو هر سه حالت یکسان هستش
                            حالا یا مشکل از منه یا مولتی متر، که مثلا چون کاهش جریان در هد میکرو هستش نمیتونه نشون بده، شاید هم...


                            راستی میگم من مولتیمتر رو میزارم رو میکرو مثلا عد 5.6 میکرونشون میده
                            میزارم رو مولتی عدد 0.56 میلی رو نشون میده و
                            وقتی میزارم رو آمپر عدد 0.056 رو نشون میده..
                            این چرا 1 رقم رقم اعشارش جابجا میشه؟
                            مگه نباید 3 تا 3 تا جابجا بشه؟؟؟
                            1m=1000u
                            1A=1000m
                            اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

                            اگه دوس دارید سریع به جواب برسید :
                            1) قبل از پرسیدن سوال، بسرچید.
                            2) سوالاتون رو با جزئیات کامل مطرح کنید.

                            دیدگاه


                              #15
                              پاسخ : ذکر چند مثال ساده که توشون از SLEEP استفاده

                              دوستان من بخوام AVR رو با C++ شروع کنم کدام کامپایلر بهتر هست؟ چرا atmel studio بهتره؟

                              من دستورات اولیه C++ رو تا حدی خوبی بلدم. ولی AVR یه سری دستورات جدید داره که باید اون ها رو هم یاد بگیرم.

                              بعضی ها کد ویژن - بعضی AVRgcc بعضی هم atmel studio. کدوم بهتره؟

                              ___________________

                              اگه واقعا به دنبال کم کردن جریان کشی هستین فقط و فقط مد powerdown به نظرم مناسبه.
                              [glow=green,2,300][b]بشر ممکن الخطاست
                              درخت هرچه پربار تر سر به زیر تر[/glow]

                              دیدگاه

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