اطلاعیه

Collapse
No announcement yet.

نوشتن برنامه تاخیر 1 ساعته با تایمر یک ؟

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

    نوشتن برنامه تاخیر 1 ساعته با تایمر یک ؟

    با سلام خدمت اعضای محترم انجمن چطور میشه تاخیر یک ساعته با تایمر 1 نوشت مثلا یک هیتر یک ساعت روشن ویک ساعت خاموش باشد. حال یا با روش polling یا وقفه تایمر! ، دوستان برای نوشتن این برنامه با مگا 16 کمک کنن...

    #2
    پاسخ : نوشتن برنامه تاخیر 1 ساعته با تایمر یک ؟

    هزار و یک روش!
    شمردن tick (وقفه تایمر)
    یا اصلا با ساختن یه RTC
    و...

    دیدگاه


      #3
      پاسخ : نوشتن برنامه تاخیر 1 ساعته با تایمر یک &#156

      سلام دارم

      تو بیا با تایمر یک یه وقثفه 10 میلی ثانیه درست کن که میشه

      یا 100 میلی یا 500 میلی ووو یا 1 ثانیه ای

      بعد تعداد سرریز وقفه ها رو توی وقفه خود تایمر بشمار تا به تعدادی برسه که بشه یک ساعت
      مثلا تو یه تایمر درست کردی به اندازه 1 ثانیه خب باید 3600بار بشماری وقفه هاشو میشه یک ساعت
      تو توی وقفه تایمر یکی اضافه کن و هی مقایسه ش کن با 3600
      یا هر مقداری که تعیین کردی با تایمر


      دیدگاه


        #4
        پاسخ : نوشتن برنامه تاخیر 1 ساعته با تایمر یک ؟

        من متوجه نشدم میشه برنامش به طور ساده با وقفه بنویسی...

        دیدگاه


          #5
          پاسخ : نوشتن برنامه تاخیر 1 ساعته با تایمر یک &#339

          من برنامه شو تمیز نوشتم اماده

          من به تشکر نیاز ندارم اما تنها کاری که میتونی در قبال کمک من کنی
          :evil:

          اینم برنامه // اگه خوب ریجستر هارو دنبال کنی همه چی دستت میاد


          #include <mega16.h>
          // کلاک 8000000


          unsigned int cont_t=0;
          // Timer 1 overflow interrupt service routine
          interrupt [TIM1_OVF] void timer1_ovf_isr(void)
          {

          TCNT1H=0xBDB >> 8;
          TCNT1L=0xBDB & 0xff;

          cont_t ++;
          if(cont_t==7200){ cont_t=0; PORTD.0=!PORTD.0; }

          //مثلا موتور تو هر یک ساعت باید خاموش و روشن بشه
          // یک ساعت روشن یک ساعت خاموش
          // پورت دی صفر هم نشان دهنده ال ای دی موتور
          // یا خود موتور یا هر وسیله کنترلی
          }

          // Declare your global variables here

          void main(void)
          {
          DDRD.0=1;
          PORTD.0=0;

          TCCR1A=0x00;
          TCCR1B=0x03;
          TCNT1H=0x0B;
          TCNT1L=0xDB;



          // Timer(s)/Counter(s) Interrupt(s) initialization
          TIMSK=0x04;

          // Global enable interrupts
          #asm("sei&quot

          while (1)
          {
          // اینجا هم جای تشکری که از پست اوم نکردی

          };
          }

          دیدگاه


            #6
            پاسخ : نوشتن برنامه تاخیر 1 ساعته با تایمر یک ؟

            با تشکر از تیک تاک
            اما بهتره برای not کردن از ~= استفاده بشه
            != برای چک کردن یک عبارت نادرست هست
            موفق باشید
            .The best question deserves a better answer
            =-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=
            «پناه»می برم «به خدا»
            از عـیبی که ، «امروز» در خود می بینم، و «دیروز» «دیگران را» به خاطر، «هـمان عیـب» ملامت کرده ام.
            محتاط باشیم، در «سرزنش» و «قضاوت کردن دیگران». وقتی نه از «دیروز او» خبر داریم و نه از "فردای خودمان" .

            دیدگاه


              #7
              پاسخ : نوشتن برنامه تاخیر 1 ساعته با تایمر یک &#156

              نوشته اصلی توسط •.´™ مَسِِــــح`.•
              با تشکر از تیک تاک
              اما بهتره برای not کردن از ~= استفاده بشه
              != برای چک کردن یک عبارت نادرست هست
              موفق باشید
              درود جناب مسیح

              و اینگونه صحیح میباشد
              اون علامت که میفرمایید برای نات کردن یه ریجستر // یه متغییر بکار برده میشه
              برای بیتی بهتره از این استفاده بشه

              ممنون از تذکر شما

              دیدگاه


                #8
                پاسخ : نوشتن برنامه تاخیر 1 ساعته با تایمر یک &#156

                با عرض سلام
                با نظر شما کاملا مخالفم
                نوشته اصلی توسط تیک تاک
                اون علامت که میفرمایید برای نات کردن یه ریجستر // یه متغییر بکار برده میشه
                در ضمن به نظر شما PORTD.0 یک ریجستر نیست؟
                .The best question deserves a better answer
                =-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=
                «پناه»می برم «به خدا»
                از عـیبی که ، «امروز» در خود می بینم، و «دیروز» «دیگران را» به خاطر، «هـمان عیـب» ملامت کرده ام.
                محتاط باشیم، در «سرزنش» و «قضاوت کردن دیگران». وقتی نه از «دیروز او» خبر داریم و نه از "فردای خودمان" .

                دیدگاه


                  #9
                  پاسخ : نوشتن برنامه تاخیر 1 ساعته با تایمر یک ؟

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

                  امتحان کن و راهنما رو دنبال کن
                  اون علامت تو برای متغییر بکار برده میشه

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

                  ممنون مسیح گرامی

                  دیدگاه


                    #10
                    پاسخ : نوشتن برنامه تاخیر 1 ساعته با تایمر یک ؟

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

                    دیدگاه


                      #11
                      پاسخ : نوشتن برنامه تاخیر 1 ساعته با تایمر یک ؟

                      مرسی میشه دو کد زیر رو توضیح بدین :
                      TCNT1H=0xBDB >> 8;
                      TCNT1L=0xBDB & 0xff;

                      دیدگاه

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