اطلاعیه

Collapse
No announcement yet.

گیر کردن میکرو در آخر یک تابع (return نمیشه)

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

    گیر کردن میکرو در آخر یک تابع (return نمیشه)

    سلام
    دارم یه ساعت با 1307 درست می کنم
    برای تنظیم کردن ساعت از پورت سی و دستور debounce استفاده کردم
    بعضی اوقات وقتی یک کلید رو فشار میدم میکرو هنگ می کنه و هیچ کاری نمی کنه باید یه مدتی صبر کنم تا خودش راه بیوفته
    توی بسکام وقتی سیمولینک می کردم می دیدم توی آخر تابع روی دستور return گیر میکنه
    امیدوارم منظورمو متوجه شده باشید
    نمونه کد استفاده از دستور دیبانس
    کد:
       Debounce Pinc.0 , 1 , Increase , Sub
       Debounce Pinc.1 , 1 , Decrease , Sub
       Debounce Pinc.2 , 1 , Setsub , Sub

    کد تایع افزایش زمان
    کد:
    Increase:
    Select Case Setstate
      Case 0
       nop
      Case 1
       Yearr = Yearr + 1
      Case 2
       If Monthh < 12 Then
         Monthh = Monthh + 1
       Else
         Monthh = 1
       End If
      Case 3
       If Dayy < 30 Then
         Dayy = Dayy + 1
       Else
         Dayy = 1
       End If
      Case 4
       If Hourr < 23 Then
         Hourr = Hourr + 1
       Else
         Hourr = 0
       End If
      Case 5
       If Minn < 59 Then
         Minn = Minn + 1
       Else
         Minn = 1
       End If
      Case 6
       If Secc < 59 Then
         Secc = Secc + 1
       Else
         Secc = 0
       End If
      Case 7
       nop
    End Select
    
    Return
    Return

    #2
    پاسخ : گیر کردن میکرو در آخر یک تابع (return نمیشه)

    دوست خوبم هیچ وقت نمی تونی 2 تا دستور return رو تو یه تابع استفاده کنی
    توضیح:
    تو به من میگی برو اینجا و برگرد و حالا وسط راه میگی برو اونجا و برگرد.خوب مگه اون بد بخت چه قدر میفهمه خوب میزنه به سیم اخر سر جاش وای میسه فکر میکنه اخر سر هم میهنگه :mrgreen:
    علم چندانکه بيشتر خواني چون عمل در تو نيست ناداني

    دیدگاه


      #3
      پاسخ : گیر کردن میکرو در آخر یک تابع (return نمیشه)

      اول از یه دونه return استفاده کردم ولی توی مثال خود بسکام دیدم دوتا گذاشته منم دوتا گذاشتم
      این مثال خود بسکامه:
      [left]
      کد:
      [left]Partial Example
      
      Enable Interrupts
      
      Enable Int0                         'enable the interrupt
      
      On Int0 Label2 Nosave                    'jump to label2 on INT0
      
      Do'endless loop
      
      nop
      
      Loop
      
      End
      
       
      
      Label2:
      
      Dim A As Byte
      
      If A > 1 Then
      
      Return                          'generates a RET because it is inside a condition
      
      End If
      
      Return                           'generates a RETI because it is the first RETURN
      
      Return                           'generates a RET because it is the second RETURN
      [/left]

      حالا انگار دیگه گیر نمیکنه
      فقط کلیدها رو عوض کردم کار دیگه ای نکردم
      هنوز هم با همون دوتا returne کار می کنه
      ممنون از لطفتون

      دیدگاه

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