اطلاعیه

Collapse
No announcement yet.

{آموزش} چگونه میشه میکرو رو ریست نرم افزاری کرد؟ ( ساده ترین راه حل )

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

    {آموزش} چگونه میشه میکرو رو ریست نرم افزاری کرد؟ ( ساده ترین راه حل )

    شاید برای شما پیش اومده باشه که بخواید میکرو تون رو ریست کنید. اگه شما بخواید شما این کار رو انجام بدید چکار میکنید( البته به غیر از دو راه حل زیر)
    راه حل 1 : یک پین از میکرو رو مستقیما به پین ریست میکرو وصل کنید و در صورت نیاز اون پین رو صفر کنید.
    راه حل 2 : از تایمر watch dog استفاده کنید. یعنی هر وقت نیاز بود این تایمر رو فعال کنید تا بعد از یه مدت معلوم میکرو رو ریست کنه.
    ---------------
    اینا دو راه حل خوبن :
    اولی : اگر تموم پین های میکرو تون رو استفاده کرده باشید و بخواید این کار رو انجام بدید . این کار رو نمیشه انجام داد. ( چون سخت افزاریه)
    دومی: اصولا کارکرد تایمر سگ نگهبان برای محافظت میکرو از هنگ کردنه. و اصولا برای اینکار استفاده نمیشه.
    ---------------
    راه حل دیگه ای رو هم سراغ دارید؟

    [hr]
    جواب سوال:
    http://www.eca.ir/forum2/index.php?t...3815#msg753815
    سوال: آبا در این روش متغیرهای داخل ram ریست میشن و مقدار اولیه خودشونو میگیرن؟
    http://www.eca.ir/forum2/index.php?t...4129#msg754129
    سوال: با چه روشی میشه از ریست شدن متغیرها جلوگیری کرد؟
    http://www.eca.ir/forum2/index.php?t...4206#msg754206
    سوال: چطور میشه یک وقفه رو بدون پیش اومدن شرایط وقفه اجرا کرد؟ (فرض کنید توابع وقفه رو نوشتیم اما تنظیمات اولیه مثل رجیستر SREG و بیت های رجیسترها رو تنظیم نکردیم)
    http://www.eca.ir/forum2/index.php?t...4306#msg754306
    جواب سوال مطرح شده:
    http://www.eca.ir/forum2/index.php?t...4462#msg754462
    سوال: این روش بر روی همه میکرو کنترلرها جواب میده؟
    http://www.eca.ir/forum2/index.php?t...4656#msg754656
    سوال: تاثیر این روش بر روی رجیستر MCUCSR چیه؟
    http://www.eca.ir/forum2/index.php?t...4883#msg754883
    سوال: کاربردهای ریست نرم افزاری چیه؟
    http://www.eca.ir/forum2/index.php?t...5272#msg755272
    براي جوينده ي علم محدوديتي نيست. "ولو بالسين"

    #2
    پاسخ : {آموزش} چگونه میشه میکرو رو ریست نرم افزاری کرد؟ ( ساده ترین راه حل )

    در صورتی که دوستان بین و نظر بدن ..
    حتما راه حل مفید دیگه رو من میدم.
    یه راه حل عالی.
    براي جوينده ي علم محدوديتي نيست. "ولو بالسين"

    دیدگاه


      #3
      پاسخ : {آموزش} چگونه میشه میکرو رو ریست نرم افزاری کرد؟ ( ساده ترین راه حل )

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

      دیدگاه


        #4
        پاسخ : {آموزش} چگونه میشه میکرو رو ریست نرم افزاری کرد؟ ( ساده ترین راه حل )

        pop کردن ادرس 00 هگز در program conter و دیگر هیچ !!!!

        دیدگاه


          #5
          پاسخ : {آموزش} چگونه میشه میکرو رو ریست نرم افزاری کرد؟ ( ساده ترین راه حل )

          نوشته اصلی توسط yousef55
          pop کردن ادرس 00 هگز در program conter و دیگر هیچ !!!!
          دقیقا.
          ..................
          حالا لطفا این حرفتونو به صورت کد بیان کنید.
          براي جوينده ي علم محدوديتي نيست. "ولو بالسين"

          دیدگاه


            #6
            پاسخ : {آموزش} چگونه میشه میکرو رو ریست نرم افزاری کرد؟ ( ساده ترین راه حل )

            سلام،
            می تونید یک اشاره گر به تابع تعریف کنید و بهش مقدار صفر بدید و بعد اون تابع رو اجرا کنید.
            There is nothing so practical as a good theory. — Kurt Lewin, 1951

            دیدگاه


              #7
              پاسخ : پاسخ : {آموزش} چگونه میشه میکرو رو ریست نرم افزاری کرد؟ ( ساده ترین راه حل )

              نوشته اصلی توسط رضا سپاس یار
              سلام،
              می تونید یک اشاره گر به تابع تعریف کنید و بهش مقدار صفر بدید و بعد اون تابع رو اجرا کنید.
              من با اجازه آقای سپاس یار حرفشونو کامل میکنم.
              تابع زیر را به صورت زیر تعریف میکنم:
              کد:
              void (*software_reset)=0x0000;
              حالا هر وقت که خواستم میکرو مو ریست کنم تابع را به صورت زیر فراخونی میکنم.
              کد:
              sofware_reset();
              --------------
              مزایای این روش نسبت به واچ داگ:
              1- اجرای این تابع 10 بایت رو صرف کد هگز میکند ولی در واچ داگ 12 بایت رو فراخوانی میکنه.
              2- مدت ریست کردن میکرو 17 سیکله که د حدود 17 میکرو ثانیه در فرکانس یک مگ هستش ولی در واچ داگ حداقل تایم ریست کردن 16.3 میلی ثانیه هستش (دیتاشیت مگا 8 )
              3-نبازی هم نداره که شما از رجیستر ها اطلاعاتی داشته باشید.
              -------------
              موفق باشید
              براي جوينده ي علم محدوديتي نيست. "ولو بالسين"

              دیدگاه


                #8
                پاسخ : پاسخ : {آموزش} چگونه میشه میکرو رو ریست نرم افزاری کرد؟ ( ساده ترین راه حل )

                نوشته اصلی توسط m52r65
                من با اجازه آقای سپاس یار حرفشونو کامل میکنم.
                تابع زیر را به صورت زیر تعریف میکنم:
                کد:
                void (*software_reset)=0x0000;
                حالا هر وقت که خواستم میکرو مو ریست کنم تابع را به صورت زیر فراخونی میکنم.
                کد:
                sofware_reset();
                --------------
                مزایای این روش نسبت به واچ داگ:
                1- اجرای این تابع 10 بایت رو صرف کد هگز میکند ولی در واچ داگ 12 بایت رو فراخوانی میکنه.
                2- مدت ریست کردن میکرو 17 سیکله که د حدود 17 میکرو ثانیه در فرکانس یک مگ هستش ولی در واچ داگ حداقل تایم ریست کردن 16.3 میلی ثانیه هستش (دیتاشیت مگا 8 )
                3-نبازی هم نداره که شما از رجیستر ها اطلاعاتی داشته باشید.
                -------------
                موفق باشید
                با اینکار آیا متغیرهای داخل RAM هم ریست می شوند و مقدار اولیه رو می گیرند؟
                ---------
                .
                .
                ...........

                دیدگاه


                  #9
                  پاسخ : پاسخ : {آموزش} چگونه میشه میکرو رو ریست نرم افزاری کرد؟

                  نوشته اصلی توسط m52r65
                  من با اجازه آقای سپاس یار حرفشونو کامل میکنم.
                  تابع زیر را به صورت زیر تعریف میکنم:
                  کد:
                  void (*software_reset)=0x0000;
                  حالا هر وقت که خواستم میکرو مو ریست کنم تابع را به صورت زیر فراخونی میکنم.
                  کد:
                  sofware_reset();
                  --------------
                  مزایای این روش نسبت به واچ داگ:
                  1- اجرای این تابع 10 بایت رو صرف کد هگز میکند ولی در واچ داگ 12 بایت رو فراخوانی میکنه.
                  2- مدت ریست کردن میکرو 17 سیکله که د حدود 17 میکرو ثانیه در فرکانس یک مگ هستش ولی در واچ داگ حداقل تایم ریست کردن 16.3 میلی ثانیه هستش (دیتاشیت مگا 8 )
                  3-نبازی هم نداره که شما از رجیستر ها اطلاعاتی داشته باشید.
                  -------------
                  موفق باشید
                  با سلام

                  میشه بگید به چه صورت ریست میشه؟

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

                  دیدگاه


                    #10
                    پاسخ : پاسخ : {آموزش} چگونه میشه میکرو رو ریست نرم افزاری کرد؟ ( ساده ترین راه حل )

                    نوشته اصلی توسط Des_B
                    با اینکار آیا متغیرهای داخل RAM هم ریست می شوند و مقدار اولیه رو می گیرند؟
                    تمام متغیرهای local هم توسط این روش ریست میشن. (دقیقا مثل ریست سخت افزاری)
                    براي جوينده ي علم محدوديتي نيست. "ولو بالسين"

                    دیدگاه


                      #11
                      پاسخ : پاسخ : {آموزش} چگونه میشه میکرو رو ریست نرم افزاری کرد؟

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

                      میشه بگید به چه صورت ریست میشه؟

                      ممنون
                      این کد برنامه رو از درس 0 شروع به اجرا میکنه و در حقیقت برنامه رو میبره به آدرس ریست.
                      براي جوينده ي علم محدوديتي نيست. "ولو بالسين"

                      دیدگاه


                        #12
                        پاسخ : {آموزش} چگونه میشه میکرو رو ریست نرم افزاری کرد؟ ( ساده ترین راه حل )

                        http://www.eca.ir/forum2/index.php?topic=112981.0

                        دیدگاه


                          #13
                          پاسخ : {آموزش} چگونه میشه میکرو رو ریست نرم افزاری کرد؟ ( ساده ترین راه حل )

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

                          دیدگاه


                            #14
                            پاسخ : {آموزش} چگونه میشه میکرو رو ریست نرم افزاری کرد؟ ( ساده ترین راه حل )

                            فقظ برنامه جابه جا میشه و متغییر ها میمونند
                            مثلا اگه اینتراپت زده شده باشه و return نکرده باشی و این دستور رو اجرا کنی به مشکل میخوری

                            دیدگاه


                              #15
                              پاسخ : {آموزش} چگونه میشه میکرو رو ریست نرم افزاری کرد؟ ( ساده ترین راه حل )

                              نوشته اصلی توسط yousef55
                              فقظ برنامه جابه جا میشه و متغییر ها میمونند
                              مثلا اگه اینتراپت زده شده باشه و return نکرده باشی و این دستور رو اجرا کنی به مشکل میخوری
                              به چه مشکلی؟
                              براي جوينده ي علم محدوديتي نيست. "ولو بالسين"

                              دیدگاه

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