نمایش نتایج 1 تا 2 از 2

نام تاپیک: اضافه کردن تایمر در مگا8

  1. #1

    اضافه کردن تایمر در مگا8

    سلام دوستان

    من یه کد برای مگا 8 دارم که توی هر ثانیه صد بار یک رو به پورت کام ارسال می کنه و یه کلید گذاشتم که وقتی میزنی 1 رو به سیستم ارسال میکنه حالا میخوام که وقتی کلید رو میزنم فقط یکبار به سیستم 1 ارسال کنه و بعد از 2 ثانیه اگر دوباره کلید رو زدم یک ارسال کنه.یعنی میخوام کاری کنم که توی هر دو ثانیه فقط یکبار قابلیت ارسال یک رو داشته باشه کد رو میزارم اگه کسی میتونه واسم کاملش کنه.مرسی
    $regfile = "m8def.dat"
    $crystal = 8000000


    Config Pind.2 = Output

    Config Pinc.1 = Input
    Open "comd.2:9600,8,n,1" For Output As #1


    Do
    If Pinc.1 = 0 Then
    Print #1, "1"
    Else
    Print #1, "0"
    End If
    Waitms 10
    Loop

  2. #2

    نقل قول: اضافه کردن تایمر در مگا8

    اگه از وقفه تایمر استفاده میکنید ، کافیه یه متغییر تعریف کنید تا با هر بار وقفه تایمر (2 ثانیه یکبار) مقدارش 1 بشه . در این صورت کافیه تو شرطی که برای خوندن وضعیت دکمه گذاشتید (If Pinc.1 = 0 Then ) مقدار متغییر روهم بررسی کنید (If Pinc.1 = 0 and f Then ) و اگه شرط برقرار بود(هم دکمه زده شده بود و هم متغییر 1 بود) متغییر رو به 0 تغییر بده تا برای 2 ثانیه بعد غیر فعال بشه (تایمر هم باید ریست بشه)

    اگه از تایمر و وقفه اون استفاده نکنید ، باید متغییر رو در هر سیکل یکی زیاد کنید ولی مقدارش از 100 بیشترنشه :

    f = f+1
    if f>100 then f=100


    بعد مثل حالت اینتراپت همراه دکمه ، مقدار متغییر رو هم بررسی کنید (If Pinc.1 = 0 and f=100 Then) . و اگه شرط درسته ، متغییر رو 0 کنید

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •