اطلاعیه

Collapse
No announcement yet.

بیسیک کارا بیان داخل

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

    #16
    پاسخ : بیسیک کارا بیان داخل

    نکته اول اینکه هیچ وقت در حلقه do-loop از cls استفاده نکنین که باعث چشمک زدن میشه پس به جای
    Do
    Cls
    Locate 1 , 5
    Lcd A
    Loop
    End
    بنویسید
    cls
    Do
    home
    Locate 1 , 5
    Lcd A
    Loop
    End
    نکته دیگه اینکه در پایان برنامه endآ‌ داری دیگه بعد از وقفه شو end نمیخوای
    نکته بعد اگر در شو تایمر یک استارت میشه و مثلا وقفه بخوره به ecaآ‌ پس دیگه لزومی نداره تو eca دوباره تایمر یکو استارت کنی
    نکته بعد اینکه شما در زیر برنامه شو تایمر یک رو فعال میکنید با وقفه تایمر به کجا میره در برنامه که برای وقفه تایمر یک جایی تعریف نکردین
    نکته بعد اینکه اگر تعریف کنیم که با وقفه به ecaآ‌بره که شما هم همینو میخواین پس با تایمر یک به اونجا پرش میکنید پس لزوم pinc.3آ‌ چیه باز شما با وقفه تایمر یک میرین به ecaآ‌ با کلید هم همون کارو میکنین
    اخه اگه میخواین حتما با تایمر یک انجام بشه پس لزوم کلید چیه و چه نقشی داره
    نکته بعد اینکه در طول همین مدت تایمر صفر هم وقفه میخوره و متوقف نیست و همه با هم وقفه میخورن
    اگر میخواین که برنامه به شو بره و کارشو کامل انجام بده و بعد منتظر بمونه تا کلید زده بشه تا به ecaآ‌ بره و اون کارم انجام بده و برگرده تایمر صفرو استپ کنید که وقفه نزنه و بگین

    Show:
    Start Timer1
    A = 0
    Do
    A = A + 1
    Loop Until A = 190
    while pinc.3=1
    wend
    gosub eca
    Return

    Eca:
    A = 0
    Do
    Incr A
    Loop Until A = 100
    Stop Timer1
    Start Timer0
    Flag = 0
    while pinc.3=1
    wend
    gosub eca
    end if
    Return
    والا تو این برنامه با تایمر صفر به شو میره و بعد از اتمام شو با زدن کلید به eca میره و اونو اجرا میکنه و برمیگرده
    البته با استپ تایمر صفر جهت جلوگیری از خوردن وقفه در زمان اجرای eca آ‌و تایمر یک شما یه کار کن حلقه do-loop رو خالی بذار و نمایش a رو بذار تو do-loop وقفه مثلا
    do
    loop
    end

    Show:
    Start Timer1
    A = 0
    Do
    A = A + 1
    home
    Locate 1 , 5
    lcd a
    Loop Until A = 190
    حالا با این اوصاف یه کمی برنامه رو اصلاح کنین و بعد از قسمت شو که وارد میشه توضیح بیشتری بدین اینکه میخواین شو کامل اجرا بشه و منتظر بمونه که کلید زده بشه یا با تایمر یک خود به خود به eca بره که در اینصورت نقش کلید چیه و اگه با کلید میره تایمر یک لزومی نداره چون خودتون گفتین بعد از اجرای شو با زدن کلید به ecaآ‌بره ولی با استارت تایمر یک خود به خود به اونجا میره البته فعلا که برا وقفه تایمر یک جایی تعریف نکردین
    { خلاف قوانین - پاک شد }

    دیدگاه


      #17
      پاسخ : بیسیک کارا بیان داخل

      سلام این شاید به دردت بخوره
      ابتدا یه ژین رو وردودی قرا بده مثلا PINB.0 حالا دستورات زیر رویه نگاه کن
      goto show
      show:
      do
      برنامه مورد نظر


      if PINB.0 = 1 then goto ECA
      loop


      ECA:
      do




      bitwait pinb.0 , set
      goto show

      loop
      داستان از این قرار برنامه به محض شروع شدن وارد اولین حلقه میشه و وقتی پین مورد نظر ست شد وارد ECA میشه برنامه رو اجرا میکنه وقتی به دستور BITWAIT میرسه مدام پین انمبرده رو چک میکنه تا وقتی ست بشه وقتی ست شد برنامه های زیر خودشو به بعد میخونه که به show دوباره منقل میشه
      ادیسون: برای موفقیت 1 درصد نبوغ و 99 درصد پشتکار کافی است.

      دیدگاه

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