اطلاعیه

Collapse
No announcement yet.

میکرو avr

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

    میکرو avr

    با عرض سلام.
    ببخشید در avr برای کار زیر باید از چه دستوری استفاده نماییم؟؟؟
    مثلا تا کلیدی که روی porta.0 قرار گرفته 1 نشده است میکرو کاری را انجام ندهد.
    ممنون.

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

    نوشته اصلی توسط saati.sms نمایش پست ها
    با عرض سلام.
    ببخشید در avr برای کار زیر باید از چه دستوری استفاده نماییم؟؟؟
    مثلا تا کلیدی که روی porta.0 قرار گرفته 1 نشده است میکرو کاری را انجام ندهد.
    ممنون.
    سلام خدمت شما
    ; ( while ( ! PINA.0
    اگه کلید شما مکانیکی هست به دلیل نوسانات ولتاژ هنگام قطع و وصل شدن کلید بهتره یه تاخیر بعد از تغیر حالت کلید بزارید
    ;(delay_ms(100
    موفق باشید
    جدیدترین ویرایش توسط rezamajdi; ۰۸:۱۸ ۱۳۹۷/۰۵/۱۳.
    آرزوی سرافرازی برای ایران عزیز . . .


    دیدگاه


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

      با سلام.
      ببخشید بنده میخواستم برنامه یک شمارنده رو با avr بنویسم به طوری که با هربار فشردن یک کلید یک سری led روشن بشن.
      دستوری که شما گفتید این بود while (!PINA.0) ولی اگر برنامه در یک قسمت دیگر قرار داشت وداخل این حلقه نبود چه طور؟
      ممنون میشم اگر در مورد این دستور while و علامت ! هم توضیح بدین.
      تشکر


      سلام خدمت شما

      از این دستورات استفاده کنید
      ( if ( PINA.0
      ; (delay_ms(100
      ;
      ( while ( PINA.0
      ; (delay_ms(100
      این دستورات به میکرو میگن اگه پین 0 از پورت A ارزش منطقی 1 پیدا کرد ( کلید فشرده شد ) به دلیل نوسانات احتمالی ولتاژ هنگام تغیر حالت کلید 100 میلی ثانیه صبر کن
      سپس تازمانی که ارزش منطقی پایه میکرو 1 هست همین طور دستور حلقه رو اجرا کن همین که کلید برداشته شد بازم به دلیل تغیر حالت کلید و نوسانات احتمالی ولتاژ
      100 میلی ثانیه صبر کن و بعد مابقی برنامه اجرا میشه . . .
      به جای 100 میلی ثانیه از مقادیر کمتر هم میتونید استفاده کنید مثلا 50 میلی ثانیه اما 100 میلی ثانیه مطمئن تر هست

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

      در کل باید بگم بسته به برنامه ای که نوشتید باید تصمیم گرفت که باید از چه روشی استفاده کرد
      برای کار شما روش خیلی راحت اینه که از وقفه های خارجی استفاده کنید
      در مورد دستور while :
      این دستور به میکرو میگه تا زمانی که عبارت داخل پرانتز ارزش غیر صفر داره مدام حقله while رو اجرا کنه در غیر این صورت از حلقه رد میشه و مابقی دستورات اجرا میشه .
      علامت تعجب ( ! ) : این علامت هر مقدار غیر صفر رو صفرمیکنه ( مثلا عبارت 5! ارزش صفر داره ) و صفر رو یک میکنه .

      سوالی داشتید در خدمتم
      موفق باشید
      آرزوی سرافرازی برای ایران عزیز . . .


      دیدگاه

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