اطلاعیه

Collapse
No announcement yet.

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

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

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

    سلام
    دوستان من این برنامه رو نوشتم توی بسکام اجرا شد و هیچ اروری نداد.اما جوابی که در عمل می گیرم چیزی نیس که میخام.
    "regfile = "m16def.dat$
    $crystal = 8000000

    Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2
    Config Kbd = Porta , Debounce = 50 , Delay = 100
    Config Timer0 = Timer , Prescale = 64



    Dim A As Byte



    Enable Interrupts
    Enable Timer0
    On Timer0 Isr
    Cursor Off


    Startt:
    A = 0
    Do

    Cls
    Locate 1 , 1
    Lcd A
    Waitms 100
    Incr A
    Loop


    Order:
    Cls
    Locate 1 , 1
    "Lcd "hi world
    Waitms 100

    Goto Startt

    End


    Isr:


    Do
    A = Getkbd()
    If A > 15 Then Goto Isr

    If A = 14 Then Goto Order

    Loop
    Return

    میخام ابتدا از صفر شروع به شمارش کنه و هروقت دکمه = رو بزنم یه عبارتی نوشته بشه و از اول بشمره.ولی تو عمل،ابتدا فقط عدد صفر رو نشون میده و وقتی = رو میزنم ،عبارت نوشته میشه و از اول شروع به شمارش میکنه ولی بعد از اون هرچی = رو میزنم هیچ اتفاقی نمیفته

    لطفا راهنماییم کنید

    #2
    پاسخ : استفاده از تایمر صفر بسکام

    سلام

    نمی خوام ناامید بشین ولی کلا ساختار برنامه تون اشتباس.
    چرا ناراحتی پاتریک!
    + امروز ی بچه دیدم سرچهارراه گل میفروخت
    - از دیدنش ناراحت شدی؟
    + نه
    پس چی ناراحتت کرده
    + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
    ------------------------------------------------------------------------------------------------------
    تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
    ------------------------------------------------------------------------------------------------------
    محصولات

    دیدگاه


      #3
      پاسخ : استفاده از تایمر صفر بسکام

      سلام

      نمی خوام ناامید بشین ولی کلا ساختار برنامه تون اشتباس.
      واقعا؟؟ :sad:
      چیزی که میخام شدنی نیس؟؟یا استفاده از تایمر0 غلطه؟؟یا....
      میشه خواهشا بیشتر توضیح بدید
      حقیقتش من تایمر0 رو درست نفهمیدم.

      دیدگاه


        #4
        پاسخ : استفاده از تایمر صفر بسکام

        شما اگه امکان داره صحیح و کامل بگین چی می خواین تا کمکتون کنم.
        اگه شماتیک خاصی هم دارین بزارین.
        فقط لطفا توضیحات مفیدی رو از چیزی که میخواین ارائه بدین.
        موفق باشید
        چرا ناراحتی پاتریک!
        + امروز ی بچه دیدم سرچهارراه گل میفروخت
        - از دیدنش ناراحت شدی؟
        + نه
        پس چی ناراحتت کرده
        + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
        ------------------------------------------------------------------------------------------------------
        تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
        ------------------------------------------------------------------------------------------------------
        محصولات

        دیدگاه


          #5
          پاسخ : استفاده از تایمر صفر بسکام

          فقط لطفا توضیحات مفیدی رو از چیزی که میخواین ارائه بدین.
          راستش من باید برنامه چراغ راهنمایی رو بنویسم که وضعیت دو مسیر رو رو دو خط lcd نشون بده.اول برنامه با یه مقادیر پیش فرض شروع کنه به شمارش مثلا 12 =green1=20 ,yellow1=4,red1.برنامه این قسمت نوشتم جواب داد.ولی این برنامه باید این قابلیت رو داشته باشه که اگه یه دکمه مشخص ،مثلا = زده بشه از شمارش بیاد بیرون و مقادیر پیش فرض تغییر کنه.و من از تایمر صفر استفاده کردم.چون تنها وقفه ایه که بلدم!
          اینجا به مشکل خوردم.
          برنامه بالا رو چون ساده تر بود نوشتم تا ببینم عیب کارم کجاس.میخام ابتدا از صفر شروع به شمارش کنه و روی lcd نمایش بده و هروقت دکمه = رو بزنم یه عبارتی نوشته بشه و پس از 100ms دوباره از صفر بشمره.
          اگه بد توضیح دادم ببخشید.

          دیدگاه


            #6
            پاسخ : استفاده از تایمر صفر بسکام

            این علامت مساوی از کجا میاد ؟
            یه کلیده که می زنی یا کیپد هستش ؟
            چرا ناراحتی پاتریک!
            + امروز ی بچه دیدم سرچهارراه گل میفروخت
            - از دیدنش ناراحت شدی؟
            + نه
            پس چی ناراحتت کرده
            + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
            ------------------------------------------------------------------------------------------------------
            تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
            ------------------------------------------------------------------------------------------------------
            محصولات

            دیدگاه


              #7
              پاسخ : استفاده از تایمر صفر بسکام

              کی پد هست

              دیدگاه


                #8
                پاسخ : استفاده از تایمر صفر بسکام

                خب این کارو انجام بده :

                یه متغیر تعریف کن با مقدار ژیش فرضی که می خوای و سپس در حلقه اصلی بیا این متغیر رو با تاخیر مورد نظر یک واحد یک واحد افزایش بده.
                سپس کیپد رو به یکی از اینتراپت های خارجی متصل کن که هر وقت کلیدی فشار داده شد برنامه چک کردنش اجرا بشه و در صورت فشار کلید '='
                عملکرد مورد نظر که صفر شدن متغیر و نمایش متن هست انجام بگیره.

                این تاپیک و مقاله اخرین ارسال قطعا می تونه کمکت کنه:


                موفق باشید
                چرا ناراحتی پاتریک!
                + امروز ی بچه دیدم سرچهارراه گل میفروخت
                - از دیدنش ناراحت شدی؟
                + نه
                پس چی ناراحتت کرده
                + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
                ------------------------------------------------------------------------------------------------------
                تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
                ------------------------------------------------------------------------------------------------------
                محصولات

                دیدگاه


                  #9
                  پاسخ : استفاده از تایمر صفر بسکام

                  دوست عزیز من منظور شمارو فهمیدم
                  شما فقط یک چراغ راهنمایی دارین؟
                  .The best question deserves a better answer
                  =-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=
                  «پناه»می برم «به خدا»
                  از عـیبی که ، «امروز» در خود می بینم، و «دیروز» «دیگران را» به خاطر، «هـمان عیـب» ملامت کرده ام.
                  محتاط باشیم، در «سرزنش» و «قضاوت کردن دیگران». وقتی نه از «دیروز او» خبر داریم و نه از "فردای خودمان" .

                  دیدگاه


                    #10
                    پاسخ : استفاده از تایمر صفر بسکام

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

                    خب این کارو انجام بده :

                    یه متغیر تعریف کن با مقدار ژیش فرضی که می خوای و سپس در حلقه اصلی بیا این متغیر رو با تاخیر مورد نظر یک واحد یک واحد افزایش بده.
                    سپس کیپد رو به یکی از اینتراپت های خارجی متصل کن که هر وقت کلیدی فشار داده شد برنامه چک کردنش اجرا بشه و در صورت فشار کلید '='
                    عملکرد مورد نظر که صفر شدن متغیر و نمایش متن هست انجام بگیره.
                    درست نشد. :cry:

                    دیدگاه


                      #11
                      پاسخ : استفاده از تایمر صفر بسکام

                      دوستان از راهنماییاتون ممنونم
                      مشکلم حل شد شکر خدا

                      تو برنامه اگه بعد از order ، این دستورا رو بنویسی (Disable Timer0وDisable InterruptsوTimer0 = 0)و قبل از go startt دوباره فعالشون کنی و delay کیپد رو ورداری حل میشه

                      دیدگاه

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