اطلاعیه

Collapse
No announcement yet.

برنامه نویسی با Bascom

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

    برنامه نویسی با Bascom

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

    #2
    پاسخ : برنامه نویسی با Bascom

    به سادگی الان براتون برنامه شو می نویسم :applause:
    اول از همه اینو اول برنامه بزار
    کد:
    declare sub A1
    declara sub A2
    Config Debounce = 40
    دوم جایی که می خوای برنامت بازدن کلید متوقف بشه این دستور رو بزار
    debounce pinx.x , 0 , subrotin
    مثلا اونو توی یک زیر برنامه بنویس
    کد:
    main1:
    do
    Debounce Pinb.2 , 0 , A1
    loop
    main2:
    آخر برنامه هم اینو بزار
    کد:
    sub A1:
    do
    Debounce Pinb.2 , 0 , A2
    loop
    end sub A1
    sub A2:
    goto main2
    end sub A2
    به همین سادگی

    sigpic

    دیدگاه


      #3
      پاسخ : برنامه نویسی با Bascom

      با تشکر من زیاد متوجه نشدم .این چیزی که شما گفتید را من توی برنامه زیر پیاده کردم ولی نتیجه اون جوری که میخواستم نشد
      $regfile = "m16def.dat"
      $crystal = 8000000
      Config Portb = Input
      Config Portd = Output
      Config Debounce = 40
      Dim D As Integer

      Declare Sub A1
      Declare Sub A2

      Config Lcdpin = Pin , Db4 = Porta.0 , Db5 = Porta.1 , Db6 = Porta.2 , _
      Db7 = Porta.3 , E = Porta.4 , Rs = Porta.5

      Main1:
      Do
      Debounce Pinb.2 , 0 , A1
      Loop
      Main2:
      Do
      d=0
      Set Portd.2
      Cls
      Lcd D
      Waitms 50
      reset portd.2
      D = D + 1
      Loop

      sub A1:
      Do
      Debounce Pinb.2 , 0 , A2
      Loop
      End Sub A1

      Sub A2:
      Goto Main2
      End Sub A2
      که به احتمال زیاد یه جای اشتباه دارم ولی اصل برنامه این است که .با دوتا کلید به چند تاخروجی فرمان داده میشه مثلا با pinb.0 به خروجی portd.2 دستور داده میشه led را روشن کند وروی lcd شمارش از 0به بعد را نمایش دهد.حال به فرض موقعی که شمارش lcd به 20 رسیده با ( pinb.1) یعنی یک پین دیگر می خواهیم برنامه متوقف شود.حال با فشار دادن ) pinb.1 ( میخواهیم کار قبلی را از لحظه شمارش ونمایش عدد 20 روی lcd ادامه دهد

      دیدگاه


        #4
        پاسخ : برنامه نویسی با Bascom

        خوب من برنامه ای رو که نوشتم برای توقف و خواندن یک کلیده شما مدار + تمام کاری رو که می خوای انجام بدی بزار تا راهنمایی کنم.
        اما اول یکم توضیحات راجع به برنامه ها :
        در راجع به تو ضیحات دستوراتی که نوشتم باید بگم که دستور config debounce برای گرفتن لرزش بانسینگ و نویز کلید هست و دستور declare مغرفی یک زیر برنامه
        اول شما باید برنامه ات رو بنویسی و هنگامی که می خواهی متوقف شود برنامه وارد حلقه main1 شده و دائما کلید را می خواند و کار دیگری انجام نمی دهد و هنگامی که کلید زده شود زیر برنامه A1 اجرا می شود . و در این زیر برنامه اول شما باید دستورات موردن نظر رو که قصد دارید با زدن کلید بار اول انجام شود رو بنویسید و بعد دستور Debounce Pinb.2 , 0 , A2 تا کلید را بخواند و می توان تمام این دستورات داخل زیر برنامه را در حلقه تکرار نوشت. و هنگامی که کلید دوباره زده می شود به سراغ زیر برنامه A2 رفته و آنرا اجرا می نماید.
        اما در برنامه شما :
        ابتدا برنامه وارد حلقه شده و کلید را میخواند
        هنگامی که کلید زده شود زیر برنامه A1 اجرا شده و دوباره کلید خوانده می شود و با زدن کلید به main2 رفته و دستورات آنرا اجرا می کند.
        اما چیزی که شما نیاز دارید این نیست پس تمام هدف + فایل پروتئس مدار رو قرار دهید تا بیشتر راهنمایی کنم.

        sigpic

        دیدگاه

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