اطلاعیه

Collapse
No announcement yet.

مشکل با تایمر میکرو!

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

    مشکل با تایمر میکرو!

    سلام
    چند وقته به یه مشکلات پیش پا افتاده ای میخورم و نمیتونم حلش کنم که... :( :( :(
    یه ATMega8 جدید خریدم
    هر کاری میکنم تایمرهاش داخل برنامه به کار نمی افنه
    اینم دستورایی که دادم:
    معرفی:

    کد:
    '----------------------------------------------------------
    Config Timer2 = Timer , Prescale = 1 , Async = Off
    '-------------------------------------------
    Enable Interrupts
    Enable Timer2
    Stop Timer2
    Enable Ovf2
    On Ovf2 Bizzer
    '----------------------------------------------------------
    دستور استارت(با فشار دادن کلید):

    کد:
    ...
         Start Timer2
         Set Portc.5
    ...
    زیر برنامه:

    کد:
    Bizzer:
    Stop Timer2
    Reset Portc.5
    Timer2 = 0
    Return
    C.5 که فعال میشه دیگه قطع نمیشه
    امتحان کردم زیر برنامه سالمه
    مشکل از استارت نشدن تایمر هست
    کسی میدونه مشکلش چی ممکنه باشه؟
    به فیوز بیتها که ربطی نداره؟
    آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

    116 کتابخانه مورد نیاز برای Altium Designer

    از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

    #2
    پاسخ : مشکل با تایمر میکرو!

    سلام شما یعنی اصلا به زیربرنامه پرش نمیکنی؟
    برنامتو کامل نذاشتی هیچکسی نمیفهمه چکار کردی بذار تا بشه کامل چک کرد برادر
    { خلاف قوانین - پاک شد }

    دیدگاه


      #3
      پاسخ : مشکل با تایمر میکرو!

      نوشته اصلی توسط r-el
      سلام شما یعنی اصلا به زیربرنامه پرش نمیکنی؟
      برنامتو کامل نذاشتی هیچکسی نمیفهمه چکار کردی بذار تا بشه کامل چک کرد برادر
      اصلا تایمر شروع به شمارش نمیکنه که بخواد سر بره و به زیر برنامه پرش کنه
      اینم برنامه:

      کد:
      $regfile = "m16def.dat"
      $crystal = 8000000
      '----------------------------------------------------------
      Config Timer2 = Timer , Prescale = 1 , Async = Off
      '-------------------------------------------
      Enable Interrupts
      Enable Timer2
      Stop Timer2
      Enable Ovf2
      On Ovf2 Bizzer
      '----------------------------------------------------------
      Config Lcdpin = Pin , Db4 = Pinb.3 , Db5 = Pinb.2 , Db6 = Pinb.1 , Db7 = _
      Pinb.0 , Rs = Pinb.5 , E = Pinb.4
      Config Lcd = 16 * 2
      Cursor Off
      '----------------------------------------------------------
      Config Portd = Input
      Config Portc = Output
      '----------------------------------------------------------
      Dim Vorud As Long
      Dim Khoruj As Long
      Dim Mojud As Long
      Dim Z As Bit
      Dim Count As Byte
      '----------------------------------------------------------
      Do
       Sta:
        '----------------------------------------------------------
        If Z = 1 Then
         '----------------------------------------------------------
         If Pind.0 = 1 Then
           '----------------------------------------------------------
           Do
      
           Loop Until Pind.1 = 1
           '----------------------------------------------------------
           Incr Khoruj
           Start Timer2
           Set Portc.5
           Goto Sta
         End If
         '----------------------------------------------------------
         If Pind.1 = 1 Then
           '----------------------------------------------------------
           Do
      
           Loop Until Pind.0 = 1
           '----------------------------------------------------------
           Incr Vorud
           Start Timer2
           Set Portc.5
           Goto Sta
         End If
         '----------------------------------------------------------
        End If
        '----------------------------------------------------------
        If Pind.0 = 0 And Pind.1 = 0 Then Z = 0
        '----------------------------------------------------------
        Mojud = Vorud - Khoruj
        '----------------------------------------------------------
        Cls
        '----------------------------------------------------------
        Waitms 10
        '----------------------------------------------------------
        Locate 1 , 1 : Lcd "V:" ; Vorud
        Locate 1 , 8 : Lcd "k:" ; Khoruj
        Locate 2 , 1 : Lcd "M:" ; Mojud
        Locate 2 , 8 : Lcd "T:"
        If Mojud >= 30 Then
        Locate 2 , 10 : Lcd "Yes"
        Else
        Locate 2 , 10 : Lcd "No"
        End If
        '----------------------------------------------------------
        Waitms 50
      Loop
      End
      
      Bizzer:
      Stop Timer2
      Reset Portc.5
      Timer2 = 0
      Return
      آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

      116 کتابخانه مورد نیاز برای Altium Designer

      از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

      دیدگاه


        #4
        پاسخ : مشکل با تایمر میکرو!

        15 بازدید یک پاسخ؟ :sad:
        آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

        116 کتابخانه مورد نیاز برای Altium Designer

        از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

        دیدگاه


          #5
          پاسخ : مشکل با تایمر میکرو!

          سلام اقا مسعود چند پیشنهاد دارم
          1_ چرا این همه Do...loop گذاشتی یکی بزار و بقیه را اگه نیاز شد تابع براشون بزار
          2_برای اینکه ببینی دقیق کجای برنامه درست عمل نمی کنه برنامه را به چند قسمت تقسیم کن ببین چه خبره و کجا جواب نمی ده (به نظر من با این همه Do...loop وپرش های الکی میکرو را گیج کردی :mrgreen
          3- اون go to هم حذفش کن
          معجزه این است که هرچه داشته هایت را بیشتر با دیگران سهیم شوی،داراتر می شوی (لئونارد نیموی)
          اگر مغزانسان،چنان ساده می بود که ما از آن سر در می آوردیم،هنوز چنان احمق بودیم که هیچ از آن سر در نمی آوردیم!
          آموزش Modelsim

          دیدگاه


            #6
            پاسخ : مشکل با تایمر میکرو!

            نوشته اصلی توسط skiboy
            سلام اقا مسعود چند پیشنهاد دارم
            1_ چرا این همه Do...loop گذاشتی یکی بزار و بقیه را اگه نیاز شد تابع براشون بزار
            2_برای اینکه ببینی دقیق کجای برنامه درست عمل نمی کنه برنامه را به چند قسمت تقسیم کن ببین چه خبره و کجا جواب نمی ده (به نظر من با این همه Do...loop وپرش های الکی میکرو را گیج کردی :mrgreen
            3- اون go to هم حذفش کن
            آخه به اونجا که میرسه باید متوقف بشه میکرو
            فاصله بین یک شدن دوتا پین به نیم ثانیه هم نمیرسه
            دوما تایمر به حلقه چیکار داره؟
            سوما وقتی دستورات قبل و بعدش رو اجرا میکنه چرا دستور وسط رو اجرا نمیکنه؟ سوال من اینه
            بعد Go to رو چرا حذف کنم؟
            اینجوری که باید کل برنامه رو دوباره بنویسم :sad:

            من اینو 1 ساعت دیگه باید تحویل بدم
            یکی کمک کنه

            ----------------
            همه این کارا رو کردم نشد
            مشکل فقط سر استارت تایمر هست
            فکر کنم یکی از فیوز بیتها باید عوض بشه(قبلا به این مشکل خوردم)ولی یادم نیست کدومش!
            آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

            116 کتابخانه مورد نیاز برای Altium Designer

            از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

            دیدگاه


              #7
              پاسخ : مشکل با تایمر میکرو!

              اگه بهتون بگم مشکل چی بود خیلی محترمانه جفت پا از انجمن پرتم میکنین بیرون
              میکروم ATMega8 بود؛ ولی برنامه رو چون خیلی وقت پیش نوشته بودم میکرو رو ATMega16 تعریف کرده بودم :">
              شرمنده وقت همگی رو گرفتم
              آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

              116 کتابخانه مورد نیاز برای Altium Designer

              از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

              دیدگاه


                #8
                پاسخ : مشکل با تایمر میکرو!

                { خلاف قوانین - پاک شد }

                دیدگاه

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