اطلاعیه

Collapse
No announcement yet.

مشکل باز شدن پورت برای 10 دقیقه و بسته شدن 7 ساعته ی آن در Bascom

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

    مشکل باز شدن پورت برای 10 دقیقه و بسته شدن 7 ساعته ی آن در Bascom

    سلام من یه دستگاه آبیاری خودکار ساختم و بهش گفتم 10 دقیقه روشن باش (600000 میلی ثانیه) و 7 ساعت خاموش (25200000 میلی ثانیه) و زبانش هم بیسیک هست و از پایه شماره ی 2 برای این کار استفاده می کنه با ATmega8 ولی وقتی میخواهم برنامه رو کامپایل کنم به دلیل بزرگی عدد 25200000 این کار رو انجام نمی دهد.
    راه حل چیه؟ راستی مقدار کریستال درست تنظیم شده؟

    کد:
    کد:
    $regfile = "M8DEF.DAT"
    $crystal = 4000000
    Config Portd = Output
    Dim I As Long
    Do
    For I = 0 To 2
    Portd = Lookup(i , Code)
    Waitms 10
    Next I
    Loop
    End                             'End Program
    Code:
    Data &B10000000
    Data &B00000000

    #2
    پاسخ : مشکل باز شدن پورت برای 10 دقیقه و بسته شدن 7 ساعته ی آن در Bascom

    سلام
    توضیح خواستید در خدمتم
    کد:
    $regfile = "m8def.dat"
    $crystal = 1000000
    Config Portb = Output
    
    Dim A As Integer
    
    Do
    Wait 1
    If A < 600 Then
    Portb.0 = 1
    End If
    If A > 600 Then
    Portb.0 = 0
    End If
    If A = 25200 Then A = 0
    incr A
    Loop
    End                             'end program
    موفق باشید

    دیدگاه


      #3
      پاسخ : مشکل باز شدن پورت برای 10 دقیقه و بسته شدن 7 ساعته ی آن در Bascom

      نوشته اصلی توسط alireza shabani parsa
      سلام
      توضیح خواستید در خدمتم
      کد:
      $regfile = "m8def.dat"
      $crystal = 1000000
      Config Portb = Output
      
      Dim A As Integer
      
      Do
      Wait 1
      If A < 600 Then
      Portb.0 = 1
      End If
      If A > 600 Then
      Portb.0 = 0
      End If
      If A = 25200 Then A = 0
      incr A
      Loop
      End                             'end program
      موفق باشید
      بسیار ممنونم :nerd:
      اگر یک مقدار توضیح بدید ممنون میشم :read:

      دیدگاه


        #4
        پاسخ : مشکل باز شدن پورت برای 10 دقیقه و بسته شدن 7 ساعته ی آن در Bascom

        ببخشید یک اشتباهی شد من به جای 25200 در if سوم باید 25800 می گذاشتم شما تصحیحش کنید :mrgreen:

        خوب اینجا ما یک متغیر داریم هر یک ثانیه یک دونه افزایش پیدا می کنه سه تا هم دستور if داریم کفتیم اگر متغیر ما کوچکتر از 600 بود پورت رو یک کن که تا متغیر به عدد 600 برسه 10 دقیقه طول میکشه دومین دستور if هم مثل همینه فقط گفتیم اگر متغیر ما از 600 بزرگتر بود پورت رو صفر کن این شرط تا زمانی ادامه پیدا می کنه که متغیر به مقدار 25800 برسه و توسط if سوم صفر بشه (25200 = 600 - 25800 که 25200 ثانیه برابر می شه با 7 ساعت) و دو باره این روند تکرار می شه
        ببخشید اگر بد توضیح دادم

        دیدگاه

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