اطلاعیه

Collapse
No announcement yet.

مشکل در بسکام

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

    مشکل در بسکام

    سلام دوستان من خیلی تلاش کردم تا بفهمم این دستور چی هست ولی ندونستم که کارش چیه :angry:
    کد رو می زارم خواهش می کنم راهنمایی کنید
    کد: [انتخاب]

    Dim X As Byte
    For Count = 3 To 42

    Select Case Count

    Case 3 To 18
    X = 18 - Count
    If Signaltime(count) > Min_time Then Toggle Humidityw.x

    مشکل من اینه که اون x چیکار میکنه که بعدشم به این toggle Humidityw.x ضرب کرده
    Humidityw هم از نوع word تعریف شده
    برد جوجه کشی:
    مطالعه پست 1 (حتما مطالعه کنید)


    مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

    دانلود

    توجه:
    این برد نیمه صنعتی و خانگی هست...
    برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

    آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

    #2
    پاسخ : مشکل در بسکام

    سلام
    این دستور toggle Humidityw.x ، قسمت Humidityw.x احتمالا اسم یه پین از میکرو رو گذاشته Humidityw.x و حالا داره ازش استفاده میکنه ...
    مشکلش چیه ؟؟
    تیم کاوش در مسابقات بین المللی ایران اپن 2016.نمایشی.مین یاب.
    علم را باید در آزمایشگاه یاد گرفت نه در دانشگاه!

    دیدگاه


      #3
      پاسخ : مشکل در بسکام

      Humidityیک نام aliasهست که شما ننوشتی

      دیدگاه


        #4
        پاسخ : مشکل در بسکام

        سلام
        ببینید من کد کامل رو می زارم دوستان راهنمایی کنند
        کد:
        $regfile = "m168def.dat"
        $crystal = 16000000
        $baud = 115200
        
        $hwstack = 64
        $swstack = 64
        $framesize = 64
        
        '#####################################
        
        Config Pind.4 = Input
        Config Timer0 = Timer , Prescale = 8
        
        '#####################################
        
        Const Min_time = 95                     'Wert je nach Quarzfrequenz anpassen (siehe ticks)
        
        Dim Count As Byte
        Dim Signaltime(43) As Byte
        Dim Humidityw As Word
        Dim Temperaturew As Word
        Dim Humsens_chksum As Byte
        
        Dim Humiditys As String * 16
        Dim Temperatures As String * 16
        
        
        Dim Strstring As String * 14
        Dim Ib As Byte
        
        
        '-------------------------------------------------------------------------------
        'Definieren der LCD-Pins inkl. SPI
        '
        Config Portc.2 = Output
        Lcdndc Alias Portc.2
        
        Config Portc.1 = Output
        Lcdnce Alias Portc.1
        
        Config Portc.0 = Output
        Lcdnre Alias Portc.0
        
        Config Portc.5 = Output
        Lcdnbl Alias Portc.5
        
        'Konfiguriern SPI in Soft-Mode
        Config Spi = Soft , Dout = Portc.3 , Ss = None , Clock = Portc.4
        'Initialise Spi
        Spiinit
        '-------------------------------------------------------------------------------
        
        
        '###############################################################################
        
        Declare Sub Read_timings
        Declare Sub Humtemp_values
        Declare Function Compare_chksum(byval Hsens_humidity As Word , Byval Hsens_temperature As Word , Byval Hsens_chksum As Byte) As Byte
        
        
        '###############################################################################
        ' Haupt-Programm
        
        $include "lcdn_init.inc"
        
        'Initialisiern des Nokia-LCD's
        Lcdn_reset
        Lcdn_init
        Lcdn_clear
        
        'Startsequez: Backlight blinkt 3x
        
        'For Ib = 1 To 3
        '  Toggle Lcdnbl
        '  Waitms 500
        'Next Ib
        
          Set Lcdnbl
        
          Lcdn_position 0 , 0
          Lcdn_print "Test DHT22 mit"
        
          Lcdn_position 0 , 1
          Lcdn_print "ATmega168"
        
        
        Do
         Call Humtemp_values
        
         If Compare_chksum(humidityw , Temperaturew , Humsens_chksum) = 1 Then
        
          Humiditys = Str(humidityw)
          Temperatures = Str(temperaturew)
        
          Strstring = "Humi: " + Format(humiditys , "0.0")
          'Strstring = Humiditys
          Lcdn_position 0 , 3
          Lcdn_print Strstring
        
          Strstring = "Temp: " + Format(temperatures , "0.0")
          'Strstring = Temperatures
          Lcdn_position 0 , 4
          Lcdn_print Strstring
        
         Else
        
         Strstring = "DHT Read-Error"
          Lcdn_position 0 , 5
          Lcdn_print Strstring
         End If
         Wait 3
        Loop
        
        End
        
        '###############################################################################
        ' Read timings
        ' measure time (in ticks) for signal = high (Start / Stop TIMER0)
        ' 1st two measurements do not contain sensor values
        
        Sub Read_timings
        
          Count = 1
        
          Config Pind.4 = Output : Portd.4 = 0           ' request data
          Waitms 20                        ' wait 20 ms
          Config Pind.4 = Input                  ' wait for data, receive data
        
          While Count < 43                     'collect 42 timings / signals
        
           Bitwait Pind.4 , Set                 'signal goes high > start timer
           Start Timer0
           Bitwait Pind.4 , Reset                'signal goes low > stop timer
           Stop Timer0
           Signaltime(count) = Tcnt0               'store number of ticks per signal in Signaltime byte
        
           Tcnt0 = 0
           Incr Count
        
         Wend
        
        
        End Sub
        
        '###############################################################################
        'Humidity and temperature values
        ' transform timings into bits (40 timings > 40 Bits)
        ' every time (in ticks) > Min_time >>> Bit = 1
        ' every time (in ticks) < Min_time >>> Bit = 0
        ' first word contains humidity
        ' second word contains temperature
        ' last byte contains checksum
        
        Sub Humtemp_values
        
          Local X As Byte
        
          Humidityw = 0
          Temperaturew = 0
          Humsens_chksum = 0
        
          Call Read_timings
        
          For Count = 3 To 42                   ' Erste zwei Bits überspringen
        
           Select Case Count
        
             Case 3 To 18
              X = 18 - Count
              If Signaltime(count) > Min_time Then Toggle Humidityw.x
        
             Case 19 To 34
              X = 34 - Count
              If Signaltime(count) > Min_time Then Toggle Temperaturew.x
        
             Case 34 To 42
              X = 42 - Count
              If Signaltime(count) > Min_time Then Toggle Humsens_chksum.x
        
           End Select
        
         Next
        
        End Sub
        
        '###############################################################################
        ' Calculate Checksum and compare with trasnmitted value
        
        
        Function Compare_chksum(byval Hsens_humidity As Word , Byval Hsens_temperature As Word , Byval Hsens_chksum As Byte) As Byte
        
          Local Chksum As Byte
        
          Chksum = Low(hsens_humidity ) + High(hsens_humidity )
          Chksum = Chksum + Low(hsens_temperature)
          Chksum = Chksum + High(hsens_temperature)
        
          If Chksum = Hsens_chksum Then
           Compare_chksum = 1
          Else
           Compare_chksum = 0
          End If
        
        End Function
        
        $include "lcdn_sub.inc"
        هر دوتا یه متغیر هست بعدش نمیدونم چرا با یه نکته اونا رو به هم وصل کرده :-?
        برد جوجه کشی:
        مطالعه پست 1 (حتما مطالعه کنید)


        مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

        دانلود

        توجه:
        این برد نیمه صنعتی و خانگی هست...
        برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

        آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

        دیدگاه


          #5
          پاسخ : مشکل در بسکام

          ضرب در بسکام *این شکلیه نه . این شکلی

          دیدگاه


            #6
            پاسخ : مشکل در بسکام

            نوشته اصلی توسط بنیامین خلیلی
            ضرب در بسکام *این شکلیه نه . این شکلی
            آره دوست عزیز ضرب نیست یه ممیز هست
            برد جوجه کشی:
            مطالعه پست 1 (حتما مطالعه کنید)


            مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

            دانلود

            توجه:
            این برد نیمه صنعتی و خانگی هست...
            برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

            آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

            دیدگاه


              #7
              پاسخ : مشکل در بسکام

              x رو یک متغییر محلی در نظر گرفته که به ترتیب رقم های شرط case داخل اون قرار میگیره؛ شرط دستور case هم اینه که اگه مقدار داخل signal time از min time بزرگتر بود بیت xام متغییر مربوطه رو برعکس کنه .

              دیدگاه

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