اطلاعیه

Collapse
No announcement yet.

یک مشکل در atmega8

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

    یک مشکل در atmega8

    با سلام
    مداری با ATMEGA8 طراحی کرده ام و یک قسمت از کار مدار بطور خلاصه این است که : اگر به پورت B0 مقدار منطقی یک اعمال نماییم خروجی D0 برای مدت زمان 3 ثانیه یک خواهد شد.
    چه دستوری بنویسم که چنانچه قبل از اتمام این زمان اگر مقدار یک منطقی اعمال شده به ورودی مان ( B0 ) تجدید شود یا باقی بماند خروجی مان ( D0 ) یک باقی بماند و زمانی که تحریک اعمال نشه بعد از همان زمان صفر گردد؟

    خیلی ممنون
    قال امام صادق (ع):
    هر چیزی زکاتی دارد و زکات علم آنست که به اهلش بیاموزی.

    #2
    پاسخ : یک مشکل در atmega8

    اگه با وقفه کار کنی خیلی راحت میشه اینو نوشت . اونو حساس به سطح تعریف کن .

    اما اگه نمیشه از وقفه استفاده کرد باید دائما پایه ورودی رو چک کنی . اگه یک بود تایمرو ریست کن . همین .

    دیدگاه


      #3
      پاسخ : یک مشکل در atmega8

      سلام.
      منم فکر میکنم که با تایمر راحتر باشه.با یه مقدار دهی اولیه و گذاشتن دستور داخل اون.

      دیدگاه


        #4
        پاسخ : یک مشکل در atmega8

        هم با تایمر میشه هم با Delay
        یک تابع کوچیک بنویس و یک متغیر تو تایمر تعریف کن که به ازای سر رسیدن تایمر یک دونه بهش اضافه شه.
        حالا این مقدار رو با یک متغیر دیگه که به ازای ورودیت بهش اضافه میشه مقایسه کن
        خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

        دیدگاه

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