اطلاعیه

Collapse
No announcement yet.

ایجاد نویز روی میکرو و از کار افتادن تایمر

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

    ایجاد نویز روی میکرو و از کار افتادن تایمر

    سلام دوستان .من یک بردی طراحی کردم ولی تو قسمت تغذیه اش یک کم مشکل داره و بعضی مواقع با قطع یا وصل رله های خروجی میکرو هنگ میکنه و واچ داگ میکرو ریست میکنه . تا اینجا مشکلی نیست فعلا .چون من اول برنامه چک میکنم که اگه ریست میکرو از واچ داگ باشه .برنامه کار خودش ادامه بده .ولی یه مشکل بدی که دارم اینکه بعضی مواقع برنامه مثل حالت هنگ میشه ولی واچ داگ هم ریست نمیکنه .( اینجا میخوام گریه کنم). من خودم حدس میزنم تو این مواقع فقط تایمر از کار میفته .حالا چرا ؟؟چون من فقط اول while برنامه واچ داگ صفر میکنم . و هیچ جا هم تو برنامه از delay _ms استفاده نکردم که واچ داگ صفر کنه .و از طرفی من وظعیت خروجی ها و ورودیها تو تایمر میخونم و مینویسم . پس تو ایم حالت برنامه کار میکنه و واچ داگ صفر میکنه ولی تایمر ۱ کار نمیکنه که وروذی و خروجیها کنترل کنه. میخواستم ببینم مشکل همینه ؟ دوستان نظری ندارن؟
    جدیدترین ویرایش توسط rasool1370; ۲۲:۳۴ ۱۴۰۰/۰۲/۰۱.

    #2
    پاسخ : ایجاد نویز روی میکرو و از کار افتادن تایمر

    سلام خدمت دوستان
    خب یه شماتیکی یه کدی چیزی بذارین تا بشه بهتر نظر داد.
    اگه می خواین سریع تر به جواب برسین پس سعی کنین همیشه توضیحات کاملی ارائه بدین
    همیشه کامل توضیح بدهیم تا جواب کامل بگیریم.
    لطفا برای تشکر روی دکمه تشکر بزنید و بخاطر این پست نزنید که تایپیک شلوغ نشود
    تایپیک های من:
    حل تمام مشکلات atmega128a (eca.ir)
    آموزش کار با سایت (eca.ir)

    دیدگاه


      #3
      پاسخ : ایجاد نویز روی میکرو و از کار افتادن تایمر

      نوشته اصلی توسط انگور نمایش پست ها
      سلام خدمت دوستان
      خب یه شماتیکی یه کدی چیزی بذارین تا بشه بهتر نظر داد.
      اگه می خواین سریع تر به جواب برسین پس سعی کنین همیشه توضیحات کاملی ارائه بدین
      با سلام . ممنون از توجهتون.


      interrupt [TIM1_OVF] void timer1_ovf_isr(void)
      {
      TCNT1H=0x63C0 >> 8;
      TCNT1L=0x63C0 & 0xff;



      adc_val= read_adc(0);


      if(adc_val!=adc_hold)
      {
      adc_hold=adc_val;
      adc_timer=0;
      }
      else
      {
      if(adc_timer<500)
      adc_timer++;
      }

      adc_mean*=21;
      adc_mean+=adc_val;
      adc_mean/=22;






      t=adc_mean-914;
      t*=0.06627;
      t+=45;
      temp=t*10;
      temp+=calibration;


      timer=1;

      }


      while(1)
      {
      #asm("wdr");

      if(temp!=temp_hold)
      {
      show_temp(temp);
      temp_hold=temp;
      }

      if(timer==1)
      {
      timer=0;
      input_chek();

      error_check();

      out_status();


      }




      {



      برنامه به این شکل نوشتم . خودم فکر میکنم که تایمر از کار میفته و دیگه ورودیها و خرجی ها به روز نمیکنه و همچنین دما هم دیگه به روز نمیشه . و برنامه فقط توی while میچرخه و اول برنامههم واچ داگ ریست میشه.
      چنین چیزی ممکنه؟؟

      دیدگاه


        #4
        پاسخ : ایجاد نویز روی میکرو و از کار افتادن تایمر

        سلام خدمت دوستان
        اینطور که من متوجه شدم (شک دارم) اینتراپت داخلی فعال نیست.
        من خیلی c بلد نیستم ببخشید
        ولی شما گفتین گاهی وقتا کار می کنه گاهی وقتا نه؟ اگه اینجوری باشه فکر کنم یه جای برنامه مشکل داره یا مشکل سخت افزاری وجود داره
        اگه هم هیچوقت کار نکرده مال همون اینتراپت داخلیه که فعالش نکردین
        همیشه کامل توضیح بدهیم تا جواب کامل بگیریم.
        لطفا برای تشکر روی دکمه تشکر بزنید و بخاطر این پست نزنید که تایپیک شلوغ نشود
        تایپیک های من:
        حل تمام مشکلات atmega128a (eca.ir)
        آموزش کار با سایت (eca.ir)

        دیدگاه


          #5
          پاسخ : ایجاد نویز روی میکرو و از کار افتادن تایمر

          چرا اینتراپت فعاله .
          این برد تغذیش مشکل داره و بعضی مواقع هنگ میکنه ولی واچ داگ ریستش میکنه.
          ولی بعضی مواقع مثل حالت هنگ میشه ولی واچ داگ هم ریست نمیکنه . گفتم شاید تایمر از کار میفته که دیگه ورودی و خروجی ها کار نمیکنند ولی برد میکرو هم رییت نمیشه .

          دیدگاه


            #6
            پاسخ : ایجاد نویز روی میکرو و از کار افتادن تایمر

            تغذیه میکرو تو این حالت باید از تغذیه قطعات جانبی جدا باشه,من خودم همیشه برای میکرو پنج ولت با یه رگولاتور بصورت مجزا طراحی میکنم و ادوات جانبی رو از منابع جدا تهیه میکنم,برای تغذیه میکرو حتما از یه خازن عدسی صد نانو فاراد و یه خازن الکترولیت چهار تا ده میکروفاراد استفاده کن مشکلت حل میشه,

            دیدگاه


              #7
              پاسخ : ایجاد نویز روی میکرو و از کار افتادن تایمر

              سلام
              همین طور که جناب سعید دیود فرمودن
              بهتره که منابع تغذیه جدا باشه
              بهرته که از خازن ها و دیود مستقل با ظرفیت های حداقل 1000 میکرو کار کنید تا مقدار وسان ولتاژ توی مدار از بین بره
              طراحی منبع تغذیه به این راحتی که تصور می کنید نیست
              و هیچ وقت نمی تونی با یک آداپتور ساده 35 هزار تومنی ولتاژ حسابی و بدون نویز به سیستم ت برسونی
              مواردی مثل دیود هرزگرد و ... رو حتما در رله ها استفاده کنید
              و همچنین مدار تغذیه باید دارای سلف و خازن باشن




              اگه مردم می دونستن زمان چقدر با ارزشه دیگه هیچ وقت کفش بند دار نمی خریدن البرت انیشتن

              دیدگاه

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