اطلاعیه

Collapse
No announcement yet.

مشکل با watchdog در pic32

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

    مشکل با watchdog در pic32

    با سلام
    دوستان من توی pic18 از watchdog استفغاده می کنم و هیچ مشکلی ندارم و همه چیز درسته
    اما چند وقتی هست که می خوام توی pic32 هم ازش استفاده کنم . اما یه مشکل هجیب و بزرگ دارم

    من توی کانفیک فیوز بیت ها واچ داگ رو فعال می کنم و تقسیم کننده رو هم گذاشتم که مثلا هر چهار ثانیه یه بار اورفلو بشه و مدار رریست بشه . تا اینجای کار همه چیز درسته و میکرو سر تایم مشخص شده ریست میهش
    ام حالا می خوام مثلا توی لوپ اصلی برنامه یع دستور بنویسم که تایمر واچ داگ رو صفر کنم و نذارم که اور فلو بشه
    این دستور رو استفاده می کنم
    WDTCLR_bit = 1
    یا این دستور جفتش یه چیره
    WDTCONSET = 0x01
    اما نکته عجیب این ماجرا اینجاست که دقیقا میکر و وقتی به این خط کد من میرسه ریست میشه
    یعنی این خط باعث ریست شدن میکری من میشه
    چند روزه باهاش درگیرم
    دیتاشیت رو کامل خوندم . هیچ چیزخاصی نداره و دیتا شیت هم همین رو گفته . روی دو تا میکروی مختلفم تست کردم
    . توی اینترنت هم دیدم که خیلی ها این مشکل رو گفتن . اما کسی جوابی براش نداشته
    لطفا اگه کسی اطلاعی داره در این باره راهنماییم کنه
    مثال ساده ای . چیزی
    ممنون میشم اگه راهنماییم کنید



    #2
    پاسخ : مشکل با watchdog در pic32

    سلام

    میکروتون چیه ؟
    از چه کامپایلری استفاده میکنید ؟

    من خیلی وقت پیش یه همچین مشکلی برام پیش اومد , کار با استفاده از دستور اسمبلی حل شد !
    از دستور اسمبلی معادلش استفاده کنید ( ClrWdt )

    داخل کتاب خونه های میکروچیپ کد زیر هست :
    #define ClrWdt() {__asm__ volatile ("clrwdt"}

    و بعد دیگه فقط با نوشتن کد ClrWdt() تایمر نگهبان ریست میشه
    نا اميدي يه دروغ بزرگه که آدما به خودشون ميگن
    تلاش يه حقيقت بزرگه که با صبر به ثمر ميرسه

    دیدگاه


      #3
      پاسخ : مشکل با watchdog در pic32

      نوشته اصلی توسط ramezani.t
      سلام

      میکروتون چیه ؟
      از چه کامپایلری استفاده میکنید ؟

      من خیلی وقت پیش یه همچین مشکلی برام پیش اومد , کار با استفاده از دستور اسمبلی حل شد !
      از دستور اسمبلی معادلش استفاده کنید ( ClrWdt )

      داخل کتاب خونه های میکروچیپ کد زیر هست :
      #define ClrWdt() {__asm__ volatile ("clrwdt"}

      و بعد دیگه فقط با نوشتن کد ClrWdt() تایمر نگهبان ریست میشه
      ممنون از پاسختون
      میکروی من pic32mc675f256h هست
      و متاسفانه از کامپایلر mikroc استفاده می کنم
      هنوز چک نکردم . همین الان چک میکنم که با ریست کردن اسمبلی مشکلم حل میشه یا نه . نتیجه رو زود اعلام میکنم
      بارم ممنون
      اگه کسی چیز ذیگه ای به ذهنش میرسه اعلام کنه . بارم ممنون

      اضافه شده در تاریخ :
      دوست گرامی همین الان یه چیزی به ذهنم رسید . دستور اسمبلی که گفتید که اصلا جزو انستراکش های pic 32 نیست که
      توی دیتا شی کفته یه بییت از رجیستر فلان رو یک کنید تا تایمر سفر بشه. این دستور مال pic18 هست من توی پیک 18 با همین دستور واچداگ رو ریست می کنم . اما این دستور توی پیک 32 بوجو.د نداره .
      در هر صورت من سعی کردم روش شما رو تست کنم . اما کامپایلرم میگه چینی دستور اسمبلی برای این میکرو وجود نداره

      دیدگاه


        #4
        پاسخ : مشکل با watchdog در pic32

        دستور اسمبلی فوق رو از یه میکرو 16 بیتی کپی کردم , اما مگه میشه این میکرو برای این کار دستور اسمبلی نداشته باشه ! :-?
        اگه دستور اسمبلی این میکرورو پیدا کردم دوباره پیام میدم
        نا اميدي يه دروغ بزرگه که آدما به خودشون ميگن
        تلاش يه حقيقت بزرگه که با صبر به ثمر ميرسه

        دیدگاه


          #5
          پاسخ : مشکل با watchdog در pic32

          سلام دوست عزیز
          من خیلی گشتم و توی دستورات اسمبلی پیک 32 گشتم
          دستوری که برای ریست واچ داگ باشه وجود نداره
          لطفا راهنماییم کنید

          دیدگاه


            #6
            پاسخ : مشکل با watchdog در pic32

            سلام

            فرصت زیادی برای تحقیق نداشتم , یه PDF پیدا کردم که احتمال زیاد خودت هم داریش , تو PDF هم دقیقا کار شما رو انجام داده
            http://fadak-srt.persiangig.com/document/pdf/60001114G.pdf/download?d2aa

            اگه دستور اسمبلیش رو پیدا کردم دوباره پیام میدم
            نا اميدي يه دروغ بزرگه که آدما به خودشون ميگن
            تلاش يه حقيقت بزرگه که با صبر به ثمر ميرسه

            دیدگاه


              #7
              پاسخ : مشکل با watchdog در pic32

              نوشته اصلی توسط ramezani.t
              سلام

              فرصت زیادی برای تحقیق نداشتم , یه PDF پیدا کردم که احتمال زیاد خودت هم داریش , تو PDF هم دقیقا کار شما رو انجام داده
              http://fadak-srt.persiangig.com/document/pdf/60001114G.pdf/download?d2aa

              اگه دستور اسمبلیش رو پیدا کردم دوباره پیام میدم
              سلام
              اره درسته من هم این و دیدم و دقیقا مثل همین دیتاشیت یه برنامه ساده نوشتم
              اما کار نمی کنه
              دیگه دارم دیونه میشم من سخت ترین ماژول ها میکر رو خیلی راحت راه انداختم اما یه واچداگ درپیت سه روزه من و سرکار گذاشته !!!!

              اضافه شده در تاریخ :
              آقا کسی نبود کمک کنه
              این واش داگ pic32 داره اعصابم رو خورد میکنه

              اضافه شده در تاریخ :
              یه نکته اینکه همین کد ساده رو با MPLABX نوشتم و پروگرام کردم
              همه چیی درست کار میکنه و سرجاشه
              اما من با Mikroc که می نویسم تمام کانفیگ ها هم مثل mplabx میزارم . اما اینجا به محض رسیدن به دستور ی که گفتم میکرو ریست میشه .!!!!!!!!1
              تمام کد و کانفیگ مثل همه !!!!
              یکی راهنمایی کنه
              خسته شدم دیگه

              اضافه شده در تاریخ :
              هوراااااااااااا
              بلاخره بعد کلی سحتی مشکلم حل شد
              من هیچ اشتباهی نمی کردم
              ولی تهجب می کنم از mikoroc
              تمام کانفیگ بیت های رزرو رو با اینکه توی دیتاشیت گفته 1 توش بنویسید . توش صفر می نویسه و این کار رو خراب میکه
              که حلش کردم

              دیدگاه

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