اطلاعیه

Collapse
No announcement yet.

کمک در مورد بسکام avr

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

    کمک در مورد بسکام avr

    سلام به دوستان جان،

    آقا! تو بسکام میخام کدی بنویسم که یکی از خروجی های میکرو رو به مدت مثلا 50 ثانیه روشن کنه و بعد خاموش.
    از wait نمیتونم استفاده کنم چون در حین این 50 ثانیه، بعضی ورودی های میکرو باید مرتب چک بشه.
    کمک کنید چه کدی باید بزنم؟
    بابا هی این امضای منو پاک نکن! حساسیت داری؟!
    "سبز سبــــزم ریشه دارم! من درختــــــــــــی استوارم!"

    #2
    پاسخ : کمک در مورد بسکام avr

    برای زمان ، از اینتراپت استفاده کن .

    دیدگاه


      #3
      پاسخ : کمک در مورد بسکام avr

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

      ببین از کد زیر استفاده کردم:

      Do


      Toggle Portb.3
      Waitms 500


      Loop
      End

      P:
      Incr B
      If B > 20 Then
      Reset Portb.2

      B = 0

      End If

      Return


      بعد از حدودا 5 ثانیه (اون یارو روی 1024 بود!) LED روشن شد اما..... oo:
      ایراد کار اینجاست که تووو این 5 ثانیه، میکرو قفل میکنه یعنی هیچ کاری انجام نمیده تا وقتی که 5 ثانیه تموم بشه اون وقت حالا میپرسه چی میگی؟! :redface: :rolleyes:

      من میخام LED رو به مدت 5 ثانیه روشن کنه و در عین حال یه سری کارای دیگه هم بکنه.

      خاهش میکنم کمک کنید.. :angry: :angry: :angry:....
      بابا هی این امضای منو پاک نکن! حساسیت داری؟!
      "سبز سبــــزم ریشه دارم! من درختــــــــــــی استوارم!"

      دیدگاه


        #4
        پاسخ : کمک در مورد بسکام avr

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

        ببین از کد زیر استفاده کردم:

        Do


        Toggle Portb.3
        Waitms 500


        Loop
        End

        P:
        Incr B
        If B > 20 Then
        Reset Portb.2

        B = 0

        End If

        Return


        بعد از حدودا 5 ثانیه (اون یارو روی 1024 بود!) LED روشن شد اما..... oo:
        ایراد کار اینجاست که تووو این 5 ثانیه، میکرو قفل میکنه یعنی هیچ کاری انجام نمیده تا وقتی که 5 ثانیه تموم بشه اون وقت حالا میپرسه چی میگی؟! :redface: :rolleyes:

        من میخام LED رو به مدت 5 ثانیه روشن کنه و در عین حال یه سری کارای دیگه هم بکنه.

        خاهش میکنم کمک کنید.. :angry: :angry: :angry:....
        سلام
        دوست عزیز شما برای تاخیر باید از تایمر استفاده کنید بهتره از تایمر یک که 16 بیتی است استفاده کنید.تایمر بعد از 65536 میکروثانیه وقفه اتفاق می افته.حالا شما خودت میتونی مقدار تایمر رو مقدار دهی کنی.

        دیدگاه


          #5
          پاسخ : کمک در مورد بسکام avr

          دوست عزیز یادت باشه که همه چیز را همگان دانند! پس لطف کن خیلی بیشتر توضیح بده
          ممنون
          منتظرم...
          بابا هی این امضای منو پاک نکن! حساسیت داری؟!
          "سبز سبــــزم ریشه دارم! من درختــــــــــــی استوارم!"

          دیدگاه


            #6
            پاسخ : کمک در مورد بسکام avr

            سلام
            من خودم تازه avr شروع کردم . اگه منظورتو درست فهمیده باشم باید از دستور زیر استفاده کنی


            config timer1 = timer , prescale = 1024 , compare a = toggle , compare b = toggle , clear timer = 1
            "پیکر بندی تایمر1 که میگه : از تایمر1 به عنوان تایمر استفاده کن و فرکانس را به 1024 تقسیم کن و در صورت برابری رجیستر a و تایمر پین oc1a را برعکس کن و برای رجیستر b هم همینطور و هنگام رخ دادن تطابق تایمر را پاک کن"
            compare1a = 5000
            "رجیستر a را برابر 5000 قرار بده"
            compare1b = 5000
            "مثل بالایی"
            on oc1a subroutin1
            "این یعنی اگه مقدار تایمر1 با رجیستر a برابر شد به زیرروال برو"
            on oc1b subroutin2
            "مثل بالایی"
            start timer1
            .
            ..
            main:
            ...
            end
            subroutin1:
            ...
            return
            subroutin2:
            ...

            return

            اساتید اگه جاییش مشکل داره بگین...

            دیدگاه

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