اطلاعیه

Collapse
No announcement yet.

ساخت زمان های طولانی در AVR

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

    ساخت زمان های طولانی در AVR

    با عرض سلام خدمت اساتید
    من میخوام در AVR یه تاخیر 3ساعته بسازم آیا به غیر از استفاده از تایمرهایی میکرو و مدام تیو یه حلقه روشن کردن و بعد از اینترابت شدن دوباره روشن کردن روش دیگه ای هست؟ :cry2:
    خواهشا کمکم کنید..... فوریه :cry2: :sad:
    به يادت ميآ‌مانم و ميآ‌دانم که ميآ‌آيي--- تو تنها يادگار مانده از قوم اهورائي-

    #2
    پاسخ : ساخت زمان های طولانی در AVR

    سلام.
    به جز تایمر راه دیگه ای نیست.
    گزینه ی بهتر تایمر 16 بیت هست و اگر نشد 8 بیت. باید حساب کنین ببینین زمان سر ریز تایمر چند میکرو یا چند میلی ثانیه هست؟ بعدش هم از چند تا متغیر استفاده میکنین که با هر بار سر ریز اون متغیر رو دونه به دونه زیاد بکنه و بعد از سر ریز اون متغیر متغیر بعدی رو یه دونه زیاد بکنه و... تا بتونین زمان لازم رو درست بکنین.

    دیدگاه


      #3
      پاسخ : ساخت زمان های طولانی در AVR

      باتشکر از شما
      نمیشه از RTC میکرو استفاده کرد؟
      به يادت ميآ‌مانم و ميآ‌دانم که ميآ‌آيي--- تو تنها يادگار مانده از قوم اهورائي-

      دیدگاه


        #4
        پاسخ : ساخت زمان های طولانی در AVR

        نوشته اصلی توسط mo'jezeh
        باتشکر از شما
        نمیشه از RTC میکرو استفاده کرد؟
        بله میشه
        (این آواتار شما همون سرندپیتی هست کارتونش ماله دهه 60 هست )
        من نمىآ‌توانم فرضیه «بىآ‌اخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآ‌دانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
        آلبرت اینشتین
        منبع: http://fa.wikiquote.org

        دیدگاه


          #5
          پاسخ : ساخت زمان های طولانی در AVR

          سلام ساعت داخلی میکرو رو راه اندازی کن بعد هر وقت خواستی زمان سه ساعتت شروع بشه ببین ساعت سیستم چنده بعد با یه if که داخل یه حلقه do loop هست بگو اگه ساعت سیستم با (ساعت سیستم در لحظه شروع قبلی+3 )برابر شد فلان کاری که میخوای بکنه.اگه متوجه نشدی کد بذارم :rolleyes:

          دیدگاه


            #6
            پاسخ : ساخت زمان های طولانی در AVR

            ببخشین چند روزی بود اینترنت نداشتم و مجبور شدم با همون تایمرها نوشتم و کارکرد.
            ولی اگه می تونین کد این روش هم بذارین :agree:
            به يادت ميآ‌مانم و ميآ‌دانم که ميآ‌آيي--- تو تنها يادگار مانده از قوم اهورائي-

            دیدگاه


              #7
              پاسخ : ساخت زمان های طولانی در AVR

              این یه برنامه برا مثال :

              $regfile = "m32def.dat"
              $crystal = 8000000
              Config Lcd = 16 * 2
              Config Lcdpin = Pin , Db4 = Pb.0 , Db5 = Pb.1 , Db6 = Pb.2 , Db7 = _
              Pb.3 , E = Pb.5 , Rs = Pb.4
              Dim Time1 As String * 8
              Config Portc = Output
              Config Clock = Soft , Gosub = Sectic
              Enable Interrupts
              Cls : Cursor Off
              Time1 = "03:00:00"


              Do
              برنامه اصلی
              Loop

              End

              Sectic:
              Home
              Lcd Time$
              If Time$ = Time1 Then
              Portc.0 = 1
              End If
              Return
              من نمىآ‌توانم فرضیه «بىآ‌اخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآ‌دانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
              آلبرت اینشتین
              منبع: http://fa.wikiquote.org

              دیدگاه


                #8
                پاسخ : ساخت زمان های طولانی در AVR

                نوشته اصلی توسط silicon0
                این یه برنامه برا مثال :

                $regfile = "m32def.dat"
                $crystal = 8000000
                Config Lcd = 16 * 2
                Config Lcdpin = Pin , Db4 = Pb.0 , Db5 = Pb.1 , Db6 = Pb.2 , Db7 = _
                Pb.3 , E = Pb.5 , Rs = Pb.4
                Dim Time1 As String * 8
                Config Portc = Output
                Config Clock = Soft , Gosub = Sectic
                Enable Interrupts
                Cls : Cursor Off
                Time1 = "03:00:00"


                Do
                برنامه اصلی
                Loop

                End

                Sectic:
                Home
                Lcd Time$
                If Time$ = Time1 Then
                Portc.0 = 1
                End If
                Return
                با C ؟؟؟؟؟ من basic بلد نیستم فقط c کارکردم... :-?? :-?? ~x(
                به يادت ميآ‌مانم و ميآ‌دانم که ميآ‌آيي--- تو تنها يادگار مانده از قوم اهورائي-

                دیدگاه


                  #9
                  پاسخ : ساخت زمان های طولانی در AVR

                  با تشکر از silicon0
                  خب شما که c بلدی ساعت داخلی میکرو رو راه اندازی کن (با ویزارد کد ویژن) بعد یه if بذار بگو اگه ساعت سیستم 3 شد بره تو زیر تابعی که میخوای

                  دیدگاه


                    #10
                    پاسخ : ساخت زمان های طولانی در AVR

                    دوست عزیز من واسه کولر گازی یدونه ساختم .یک setوrest ساده در فرکانس 10000000 هر wait 1=12s واقعی یعنی تاخیرتر واسه سه ساعت wait 900 با این تاخیر
                    بعد سه ساعت پایه مورد نظر خواموش می شه.

                    دیدگاه


                      #11
                      پاسخ : ساخت زمان های طولانی در AVR

                      نوشته اصلی توسط mo'jezeh
                      با C ؟؟؟؟؟ من basic بلد نیستم فقط c کارکردم... :-?? :-?? ~x(
                      شرمنده شما نگفته بودین زبون برنامه نویسیتون چیه

                      من c بلد نیستم دوستان کمکتون میکنن
                      من نمىآ‌توانم فرضیه «بىآ‌اخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآ‌دانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
                      آلبرت اینشتین
                      منبع: http://fa.wikiquote.org

                      دیدگاه


                        #12
                        پاسخ : ساخت زمان های طولانی در AVR

                        تایمر رو طوری تنظیم کنید که در فاصله زمانی دقیق اینتراپت بده
                        مثلا: تایمر شمارنده شماره2_ مد CTC _ فرکانس شمارش 125kHz و OCR2=124 اینتراپت های با فاصله زمانی 1 میلی ثانیه ایجاد میکند.(اینتراپت مقایسه فعال شده)
                        در روتین اینتراپت از یک متغییر که مقدار مناسبی در اون قرار گرفته اون قدر کم کنید تا صفر بشه و وقتی صفر شد زمان مد نظر شما تکمیل شده.
                        مثلا در 3 ساعت شما 3*60*60*1000 میلی ثانیه دارید(10800000). نوع متغیر رو میتونید از نوع unsigned long int تعریف کنید.
                        افتادگی آموز اگر طالب فیضی هرگز نخورد آب زمینی که بلند است

                        دیدگاه


                          #13
                          پاسخ : ساخت زمان های طولانی در AVR

                          در زبان بیسیک در 10000000hz کریستال میزان تاخیر wait 1 = است با تقریبا 12 ثانیه این تجریبه.

                          دیدگاه

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