اطلاعیه

Collapse
No announcement yet.

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

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

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

    من یک ورودی دارم که میخوام هرموقع 0شد خروجی یک بشه.

    حالا هر موقع تا 0 میکنم میکرو صفر میفهمه و کار انجام میده ولی بعدش میره از اول برنامه شروع میکنه.
    کد:
    Do
                  If Pinb.2 = 0 Then
                  goto kar
                  End If
              
             Loop
    
    kar:
    set led1
    return
    شمر ۱۴۰۰سال پیش مُرد؛شمر زمانت بشناس.
    [img width=400 height=100]http:///uploads/140623781981451.png[/img]
    [glow=green,2,100]یاحسین تشنه لب[/glow]

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

    نوشته اصلی توسط عمو LED
    من یک ورودی دارم که میخوام هرموقع 0شد خروجی یک بشه.

    حالا هر موقع تا 0 میکنم میکرو صفر میفهمه و کار انجام میده ولی بعدش میره از اول برنامه شروع میکنه.
    کد:
    Do
                  If Pinb.2 = 0 Then
                  goto kar
                  End If
              
             Loop
    
    kar:
    set led1
    return
    چرا زیر برنامه نمینویسی و اون رو صدا کنی؟
    [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
    معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
    معرفی نرم افزار Codewizard PWM
    با من بیشتر آشنا شوید

    دیدگاه


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

      ببخشید تو این برنامه ی 4 خطی؛ از کجا باید شروع کنه بعد از برگشتن؟؟ بعد از goto شرط تموم میشه و میره تو حلقه.شما از کجا میفهمین برنامه به کدوم خط میره؟

      دیدگاه


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

        چرا این کار رو میکنی؟
        احتیاجی به goto نیست
        تو همون قسمت شرط همون کاری که میخوای انجام بدی رو کدت رو بزار .
        لقمه رو دور سر خودت نپیچ
        کد:
        Do
          IF Pinb.2=0 then Set Led1
          Else Reset Led1
        Loop
        همین . . .
        به همین راحتی به همین خشمزگی . . . :wow:
        [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
        معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
        معرفی نرم افزار Codewizard PWM
        با من بیشتر آشنا شوید

        دیدگاه


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

          شاهرخ مستقیمی عزیز قبل do تو برنامم نوشتم lcd "start" . از این میفهمم که بجای اومدن تو do میره قبلش
          SAMAN.ASADI عزیز میدونم اینجوری میشه ولی من باید اینطوری که گفتم بنویسم
          شمر ۱۴۰۰سال پیش مُرد؛شمر زمانت بشناس.
          [img width=400 height=100]http:///uploads/140623781981451.png[/img]
          [glow=green,2,100]یاحسین تشنه لب[/glow]

          دیدگاه


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

            نوشته اصلی توسط عمو LED
            شاهرخ مستقیمی عزیز قبل do تو برنامم نوشتم lcd "start" . از این میفهمم که بجای اومدن تو do میره قبلش
            SAMAN.ASADI عزیز میدونم اینجوری میشه ولی من باید اینطوری که گفتم بنویسم
            من با AVR تقریبا کار نکردم،Bascom هم همینطور.حدسی که میزنم اینه که عوض goto باید از دستور gosub استفاده کنی(اگه وجود داشته باشه یا زیربرنامه رو فرخوانی کنی) بعد از برگشتن،میره به خط بعد از main برنامه؟

            دیدگاه


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

              نوشته اصلی توسط عمو LED
              شاهرخ مستقیمی عزیز قبل do تو برنامم نوشتم lcd "start" . از این میفهمم که بجای اومدن تو do میره قبلش
              SAMAN.ASADI عزیز میدونم اینجوری میشه ولی من باید اینطوری که گفتم بنویسم
              منم قبلا دقیقا مثل شما فکر میکردم
              اون موقع ها که من بسکام کار میکردم اینجور برنامه مینوشتم
              ولی بعد از چند مدتی بچه های کامپیوتر مسخرم کردند و مجبور شدم که تغییر کنم
              دیگه تا الان با دستورات مسخره برچسبی ( goto ) کار نکردم
              و واقعا هم درست میگفتند
              برنامه هام خیلی بهتر کار میکردند .
              البته قصدم بی احترامی نیست و فقط خواستم راهنماییتون کنم
              [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
              معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
              معرفی نرم افزار Codewizard PWM
              با من بیشتر آشنا شوید

              دیدگاه


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

                وقتی از دستور GOTO استفاده میکنی محل اجرای برنامه عوض میشه و به خط زیر لیبل فراخوانده شده میره و محل قبلی ذخیره نمیشه اما دستور GOSUB یا SUB و FUNCTION وقتی فراخوانی میشن محل قبلی برنامه رو تو حافظه STACK ذخیره میکنن وبا دستور RETURN به اون خطی که ازش اومده برمیگرده شما وقتی از دستور RETURN استفاده میکنی میکرو میره STACK و چون خالی هستش میاد اول برنامه.

                دیدگاه


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

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

                  دیدگاه


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

                    من هم راهی برای پاک کردن دستی پیدا نکردم اما میتونی با دستور $HWSTACK و $SWSTACK قسمتی از حافظه SRAM رو به STACK اظافه کنی هر واحد STACK برابر 512 بایته ولی مشکی نیست اگه زیاد از یه SUB یه SUB دیگه رو فراخوانی نکنی مشکلی پیش نمی یاد.

                    دیدگاه


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

                      نوشته اصلی توسط SMM1370
                      میتونی با دستور $HWSTACK و $SWSTACK قسمتی از حافظه فلش STACK اظافه کنی
                      منظورتون حافظه SRAM هست دیگه . . . نه؟
                      [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                      معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                      معرفی نرم افزار Codewizard PWM
                      با من بیشتر آشنا شوید

                      دیدگاه


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

                        اره ببخشید اشتباه شد :redface:

                        دیدگاه


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

                          نوشته اصلی توسط عمو LED
                          sub نوشتم .
                          چطور stack دستس مستونم پاک کنم؟
                          اگه میخواید به stack دسترسی داشته باشید بایستی از دستورات push و pop استفاده کنید...
                          [br /][hr]http://pcenter.ir[hr][br /]

                          دیدگاه


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

                            نوشته اصلی توسط ConstantError
                            اگه میخواید به stack دسترسی داشته باشید بایستی از دستورات push و pop استفاده کنید...
                            میشه معادل این دستورات را در زبان c بگید .
                            یک نمونه کد هم مثال بزنید .
                            ممنون :applause:
                            [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                            معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                            معرفی نرم افزار Codewizard PWM
                            با من بیشتر آشنا شوید

                            دیدگاه


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

                              این دستوراتی گه گفتم اسمبلی هستن توی بسکام میتونی راحت ازشون استفاده کنی ولی توی کدویژن بایستی بین کد #asm قرار بدی
                              [br /][hr]http://pcenter.ir[hr][br /]

                              دیدگاه

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