اطلاعیه

Collapse
No announcement yet.

چرا میکروم ریست میشه؟

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

    #16
    پاسخ : چرا میکروم ریست میشه؟

    چطور stack پاک کنم؟
    شمر ۱۴۰۰سال پیش مُرد؛شمر زمانت بشناس.
    [img width=400 height=100]http:///uploads/140623781981451.png[/img]
    [glow=green,2,100]یاحسین تشنه لب[/glow]

    دیدگاه


      #17
      پاسخ : چرا میکروم ریست میشه؟

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

      دیدگاه


        #18
        پاسخ : چرا میکروم ریست میشه؟

        نوشته اصلی توسط عمو LED
        چطور stack پاک کنم؟
        چرا میخوای استک رو پاک کنی؟
        اصلا منظورت از پاک کردن استک چیه؟
        برهرحال اگه دوبار دستور POP رو بنویسی استک به وضعیت قبلش برمیگرده مثلا دوبار بنویس POP R16
        البته معمولا بیشتر رجیسترهای عمومی و Sreg و غیره هم به صورت اتوماتیک توسط کامپایلر در stack ذخیره میشن که در این صورت بایستی اونها رو هم در نظر بگیرید
        او یا به گفته دوستمون :
        نوشته اصلی توسط SAMAN.ASADI
        آقا تو رو به خدا از خیرش بگذر .
        روش برنامه نویسی رو تغییر بده همه چی درست میشه
        [br /][hr]http://pcenter.ir[hr][br /]

        دیدگاه


          #19
          پاسخ : چرا میکروم ریست میشه؟

          دوست عزیز الان کل تاپیک رو خوندم
          شما میخوای هر کار غیر اصولی رو انجام بدی ، ولی برنامه ی خودتو عوض نکنی

          قرار گرفتن داده توی حافظه ای که برای استک در نظر گرفته میشه به صورت LIFO هستش (Last In First Out)
          شما هر جا از دستور پرش استفاده کنی ، آدرس همونجا میره توی آخرین خونه ی استک قرار میگیره و با دستور Return این آدرس از استک فراخوانی میشه ، در نتیجه بعد از Return برنامه ی شما از همونجایی که قطع شده بود ادامه پیدا میکنه
          همونطوری که دوستان اشاره کردن ، دستورات اسمبلی دسترسی به حافظه ی استک PUSH و POP هستند ، و در هر زبان برنامه نویسی قابل اجرا .
          ولی معمول بر اینه که شما وقتی کامپایلری مثل بسکام رو برای برنامه نویسیت انتخاب کردی ، دیگه از دستورات اسمبلی استفاده نکنی ، مگر در مواردی و به دلایلی ... (برنامه نویس های حرفه ای برای بهینه کردن برنامه شون ، یا اجرای سری دستوراتی که در کامپایلر معدلی براشون نداره و ... این کار رو انجام میدن)
          اگر شما در جایی نادرست و در زمانی نادرست داده ای نا به جا رو توی استک قرار بدی و یا از اون خارج کنی ، مطمئنا برنامه ات با مشکلاتی بیشتر از حال الانش مواجه خواهد شد
          پس من هم بهت توصیه میکنم که بیخیال استک شی و یه دستور از برنامه ات رو عوض کنی :agree:

          موفق باشی

          دیدگاه


            #20
            پاسخ : چرا میکروم ریست میشه؟

            دوست عزیز. چرا از دستور debounce استفاده نمی کنید؟ می توانید مثل زیر عمل کنید:
            a:
            Debounce pina.0 , 0 , kar , sub
            Goto a
            Kar:
            Set pin b.0
            Return
            در ضمن در نظر داشته باشید که هیچ وقت از پایه ی reset میکرو استفاده نکنید.چه به عنوان ورودی و چه به عنوان خروجی.چون من خودم استفاده می کردم و داءما ریست می شد.
            [glow=red,2,300]بیایید با کمک هم الکترونیک را گسترش دهیم[/glow]
            [glow=yellow,2,300]AVR & ARM[/glow]
            [glow=green,2,300]عشق است و برنامه نویسی [/glow]

            دیدگاه

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