اطلاعیه

Collapse
No announcement yet.

نیاز به کمک در مورد دستورات بسکام

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

    نیاز به کمک در مورد دستورات بسکام

    سلام خسته نباشید دوستان من برنامه ای نوشتم برای ساعت با استفاده از کریستال خارجی و برای تنظیم ساعت چند کلید تعریف کردم بدین صورت که یک کلید ثانیه و یک کلید دقیقه و یک کلید ساعت رو تنظیم میکنه حالا مشکل من اینجاست که مثلا وقتی کلید تنظیم دقیقه رو فشار میدم دقیقه یک دونه یک دونه با فاصله زمانی یک ثانیه زیاد میشه میخوام سرعت زیاد شدنش بیشتر بشه چی کار کنم؟؟؟؟
    از چه دستوری استفاده کنم؟؟؟؟

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

    نوشته اصلی توسط sajad1373
    سلام خسته نباشید دوستان من برنامه ای نوشتم برای ساعت با استفاده از کریستال خارجی و برای تنظیم ساعت چند کلید تعریف کردم بدین صورت که یک کلید ثانیه و یک کلید دقیقه و یک کلید ساعت رو تنظیم میکنه حالا مشکل من اینجاست که مثلا وقتی کلید تنظیم دقیقه رو فشار میدم دقیقه یک دونه یک دونه با فاصله زمانی یک ثانیه زیاد میشه میخوام سرعت زیاد شدنش بیشتر بشه چی کار کنم؟؟؟؟
    از چه دستوری استفاده کنم؟؟؟؟
    با سلام
    حداقل کد برنامه را بزارید ببینیم چی کار کردید
    دوربین مدار بسته و دزد گیر و رفع مشکلات
    بانک اطلاعاتی سنسورها
    ساخت رقص نور برای شیشه سکوریت مغازه ها
    تعمیر لوازم خانگی را اینجا مطرح کنید
    [move][b] موفقیت بر روی ستون های شکست شکل می گیرد.

    دیدگاه


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

      نوشته اصلی توسط حمید رضا ریاحی
      با سلام
      حداقل کد برنامه را بزارید ببینیم چی کار کردید


      $regfile = "m8def.dat"
      $crystal = 8000000

      ال سی دی رو تعریف کردم

      Config Lcdpin = Pin , Rs = Portd.4 , E = Portd.5 , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Postd.3
      Config Lcd = 16 * 2

      کریستال خارجی رو تعریف کردم

      Config Timer2 = Timer , Async = On , Prescale = 128

      کلید هایه مورد نظر برای تنظیم ها رو تعریف کردم

      Config Portb.0 = Input
      Config Portb.1 = Input
      Config Portb.2 = Input
      Config Portb.3 = Input
      Config Portb.4 = Input
      Config Portb.5 = Input

      مقادیر برای ثانیه دقیقه و ساعت و روز و ماه و سال رو تعریف کردم

      Dim San As Byte
      Dim Dagh As Byte
      Dim Saat As Byte
      Dim Year As Integer
      Dim Mo As Byte
      Dim Day As Byte

      ال سی دی رو پاک کردم

      Cursor Off
      Cls

      تایمر رو فعال کردم

      Enable Interrupts
      Enable Timer2
      On Timer2 K
      Start Timer2

      مقادیر اولیه به روز و ماه و سال و ساعتو دقیقه و ثانیه دادم

      San = 0
      Saat = 0
      Dagh = 0
      Year = 1393
      Mo = 8
      Day = 1


      Do

      Loop

      End

      زیر برنامه برای ساعت و تنظیم ساعت تعریف کردم

      K:

      <<<<<این قسمت برنامه برای تنظیم هست مشکل من همین جاست >>>>>

      If Pinb.0 = 1 Then Incr San
      If Saat > 59 Then San = 0

      If Pinb.1 = 1 Then Incr Dagh
      If Dagh > 59 Then Dagh = 0

      If Pinb.2 = 1 Then Incr Saat
      If Saat > 23 Then Saat = 0




      If Pinb.3 = 1 Then Incr Day
      If Day > 31 Then Day = 1

      If Pinb.4 = 1 Then Incr Mo
      If Mo > 12 Then Mo = 1

      If Pinb.5 = 1 Then Incr Year
      If Year > 1400 Then Year = 1390



      این جا هم برنامه ساعت رو نوشتم


      Incr San
      If San > 59 Then
      Incr Dagh
      San = 0
      End If

      If Dagh > 59 Then
      Incr Saat
      Dagh = 0
      San = 0
      End If

      If Saat > 23 Then
      Saat = 0
      San = 0
      Dagh = 0
      Incr Day
      End If

      If Day > 31 Then
      Incr Mo
      Day = 1
      End If

      If Mo > 12 Then
      Incr Year
      Mo = 1
      Day = 1
      End If

      Locate 1 , 1
      Lcd "Time"

      Locate 2 , 1
      Lcd "Date"

      Locate 1 , 6
      If Saat < 10 Then
      Lcd "0" ; Saat ; ":"
      Else
      Lcd Saat ; ":"
      End If

      If Dagh < 10 Then
      Lcd "0" ; Dagh ; ":"
      Else
      Lcd Dagh ; ":"
      End If

      If San < 10 Then
      Lcd "0" ; San
      Else
      Lcd San
      End If

      Locate 2 , 6
      Lcd Year ; "/"
      If Mo < 10 Then
      Lcd "0" ; Mo ; "/"
      End If

      If Day < 10 Then
      Lcd "0" ; Day
      Else
      Lcd Day
      End If

      Return

      دیدگاه


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

        با سلام
        دوست عزیز فک کنم چون شما تایمر 2 را روی یک ثانیه تنظیم کردی برنامه شما هر یک ثانیه یکبار وارد وقفه میشه ووقتی شما دکمه افزایش یا کاهش را میزنید برنامه الویت را به وقفه میدهد نه به اجرای دستور دیگری
        دوربین مدار بسته و دزد گیر و رفع مشکلات
        بانک اطلاعاتی سنسورها
        ساخت رقص نور برای شیشه سکوریت مغازه ها
        تعمیر لوازم خانگی را اینجا مطرح کنید
        [move][b] موفقیت بر روی ستون های شکست شکل می گیرد.

        دیدگاه


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

          نوشته اصلی توسط حمید رضا ریاحی
          با سلام
          دوست عزیز فک کنم چون شما تایمر 2 را روی یک ثانیه تنظیم کردی برنامه شما هر یک ثانیه یکبار وارد وقفه میشه ووقتی شما دکمه افزایش یا کاهش را میزنید برنامه الویت را به وقفه میدهد نه به اجرای دستور دیگری

          خب من الان باید چی کار کنم؟؟ :sad: :sad:

          میشه یک دستوری بهم معرفی کنید یا بگید برنامه رو چه جوری اصلاح کنم که سرعت زیاد شدن رو افزایش بدم؟؟ :cry2: :cry2:

          دیدگاه


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

            نوشته اصلی توسط sajad1373

            خب من الان باید چی کار کنم؟؟ :sad: :sad:

            میشه یک دستوری بهم معرفی کنید یا بگید برنامه رو چه جوری اصلاح کنم که سرعت زیاد شدن رو افزایش بدم؟؟ :cry2: :cry2:
            به نظر من از ایسی ساعت استفاده کن و خودت را راحت کن چون با این کار هر کاری بکنی یا این تاخیر در افزایش را داری یا زمان ساعتت دقیق در نمیاد
            دوربین مدار بسته و دزد گیر و رفع مشکلات
            بانک اطلاعاتی سنسورها
            ساخت رقص نور برای شیشه سکوریت مغازه ها
            تعمیر لوازم خانگی را اینجا مطرح کنید
            [move][b] موفقیت بر روی ستون های شکست شکل می گیرد.

            دیدگاه


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

              2 راه دارید . اول اینکه سرعت اجرای وقفه تایمر رو با کمتر کردن Prescale بیشتر کنید یعنی دستور

              Config Timer2 = Timer , Async = On , Prescale = 128
              رو به صورت

              Config Timer2 = Timer , Async = On , Prescale =64

              بنویسید . با این کار سرعت اجرا دقیقن 2 برابر میشه.

              روش دوم اینه که گام های افزایش رو بیشتر کنید یعنی

              If Pinb.0 = 1 Then Incr San

              رو به صورت

              If Pinb.0 = 1 Then San = San+2

              بنویسید. با این کار ثانیه ها 2 تا 2 تا زیاد میشه . البته میتونید به دلخواه تنظیم کنید

              دیدگاه


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

                نوشته اصلی توسط حمید رضا ریاحی
                به نظر من از ایسی ساعت استفاده کن و خودت را راحت کن چون با این کار هر کاری بکنی یا این تاخیر در افزایش را داری یا زمان ساعتت دقیق در نمیاد
                از آی سی ساعت به چه صورت باید استفاده کنم؟؟؟؟
                اگه از آی سی ساعت استفاده کنم میتونم ساعت رو تنظیم کنم؟؟؟

                دیدگاه


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

                  نوشته اصلی توسط sajad1373
                  از آی سی ساعت به چه صورت باید استفاده کنم؟؟؟؟
                  اگه از آی سی ساعت استفاده کنم میتونم ساعت رو تنظیم کنم؟؟؟
                  با سلام ایسی ds1307 هست که ارتباطش i2c هست وهر بلایی که بخای میتونی سرش بیاری
                  دوربین مدار بسته و دزد گیر و رفع مشکلات
                  بانک اطلاعاتی سنسورها
                  ساخت رقص نور برای شیشه سکوریت مغازه ها
                  تعمیر لوازم خانگی را اینجا مطرح کنید
                  [move][b] موفقیت بر روی ستون های شکست شکل می گیرد.

                  دیدگاه

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