اطلاعیه

Collapse
No announcement yet.

هنگ کردن avr

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

    هنگ کردن avr

    دوستان سلام
    لطفا بفرماید چه کنم تابرنامه ولتمتر وفرکانس مترم که روی lcd بعد از چند ثانیه نمایشگر بهم میریزه ؟اینم بگم یک خازن سنج هم ساختم اونم بعضی وقتها lcd هنگ میکنه
    برنامه bascam نوشته شده ممنونم از راهنمایی تون :nice:

    #2
    پاسخ : هنگ کردن avr

    سلام بر دوستان
    فرکانس متر با تایمروکانتر نوشت شده و ولتمتروامپرمتربا مبدل adc نوشتم جدا از کار میکنند اما دوتا برنامه با هم تویک ic پرگرام میکونم بعد از چندثانیه lcd بهم میریزه.

    دیدگاه


      #3
      پاسخ : هنگ کردن avr

      نوشته اصلی توسط mehrzad119
      سلام بر دوستان
      فرکانس متر با تایمروکانتر نوشت شده و ولتمتروامپرمتربا مبدل adc نوشتم جدا از کار میکنند اما دوتا برنامه با هم تویک ic پرگرام میکونم بعد از چندثانیه lcd بهم میریزه.
      سلام
      خوب
      به احتمال زیاد مشکل شما تغذیه است
      یه خازن 2200میکرو فاراد و یک خازن 100 نانو موازی با تغذیه میکرو بشوند ... این کار رو بکن ببین چی میشه ... باز هم هنگ میکنه یا نه
      موفق باشید

      اضافه شده در تاریخ :
      راستی
      فیوزبیتها رو که دستکاری نکردی ؟؟؟
      اگر واچ داگ فعال باشه میتونه اینجوری هم بشه
      [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
      معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
      معرفی نرم افزار Codewizard PWM
      با من بیشتر آشنا شوید

      دیدگاه


        #4
        پاسخ : هنگ کردن avr

        استاد گرامی ممنونم از جواب شما
        ولتمتر وفرکانس متر جداگانه کار میکنه وهیچ مشکلی نداره امادوتارو باهم روی LCD نمایش میدم این گرفتاری پیش میاد
        ولتمتر با مبدل ADC نوشتم وفرکانس متر رو با تایم

        دیدگاه


          #5
          پاسخ : هنگ کردن avr

          نوشته اصلی توسط mehrzad119
          استاد گرامی ممنونم از جواب شما
          ولتمتر وفرکانس متر جداگانه کار میکنه وهیچ مشکلی نداره امادوتارو باهم روی LCD نمایش میدم این گرفتاری پیش میاد
          ولتمتر با مبدل ADC نوشتم وفرکانس متر رو با تایم
          برنامه رو بگذارید
          توجه داشته باشید که موقعی که کدتون رو میخواهید بگذارید مستقیم کپی پست نکنید
          برای کد قرار دادن باید روی دکمه #(روش نگه داری مینویسه قرار دادن کد) بزنید و کدتون رو داخل اون بگذارید
          ممنون
          [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
          معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
          معرفی نرم افزار Codewizard PWM
          با من بیشتر آشنا شوید

          دیدگاه


            #6
            پاسخ : هنگ کردن avr

            سلام دوست من ممنونم از راهنمایی خوب شما
            $regfile = "m32def.dat"
            $crystal = 8000000
            '--------------------------------------------------
            Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.1 , _
            Db6 = Portc.0 , Db7 = Portd.7 , E = Portc.3 , Rs = Portc.4
            Config Lcd = 16 * 2
            Cursor Off : Cls

            Dim B As Byte
            Dim Aaa As Long , Bbb As Byte
            Dim V As Word , W As Single , X As Byte , Y As String * 6 , V1 As Single
            Dim Z As Word , I As Single , X1 As Byte , Y1 As String * 5 , I1 As Single
            '-------------------------------------------------------------------------------------------
            Config Pinb.1 = Input
            Portb.1 = 1
            B = 0
            '--------------------------------------------------
            Locate 1 , 1
            Lcd "YAVAR MOHANDES"
            Locate 2 , 1
            Lcd "09115506309"
            Wait 2
            Cls
            Locate 1 , 1
            Lcd "09115506309"
            Locate 2 , 2
            Lcd "S.C.N.CO v3"
            Wait 3 : Cls
            '--------------------------------------------------
            Config Timer1 = Counter , Edge = Rising
            Config Timer2 = Timer , Async = On , Prescale = 128
            Enable Timer2
            Enable Ovf2
            On Ovf2 Sky
            '--------------------------------------------------
            Enable Interrupts
            Enable Timer1
            On Ovf1 Pulsecount
            Start Timer2
            '-----------------------------------------------------------------------------
            Config Adc = Single , Prescaler = Auto
            Enable Interrupts
            Enable Adc
            Goto Sectic
            '--------------------------------------------------
            Sky:
            Cursor Off
            Stop Timer2
            Stop Timer1
            'Cls : Home
            Aaa = Bbb * 65536
            Aaa = Aaa + Counter1
            Locate 1 , 1
            Lcd " "
            Locate 1 , 1
            Lcd "Freq: " ; Aaa ; " HZ "
            Bbb = 0
            Counter1 = 0
            Start Timer2
            Start Timer1
            Return
            '--------------------------------------------------
            Pulsecount:
            Incr Bbb
            Counter1 = 0
            Return
            '------------------------------------------------------
            Sectic:
            Do
            Incr B
            Select Case B
            Case 1:
            Start Adc : V = Getadc(0) : Waitms 100 : Stop Adc

            W = V / 28.416
            Y = Fusing(w , "#.##&quot
            V1 = Val(y)
            Goto Sectic

            Case 2:
            Start Adc : Z = Getadc(1) : Waitms 100 : Stop Adc

            I = Z / 106
            Y1 = Fusing(i , "#.##&quot
            I1 = Val(y1)
            B = 0
            Gosub Onlcd
            End Select
            Loop
            End
            '-------------------------------------------------------------
            Onlcd:
            Gosub Showi
            Return
            '-------------------------------------------------------------------------------
            Showi:
            Locate 2 , 1
            Lcd " "
            Locate 2 , 1
            If V1 => 10 Then
            Lcd "V:" ; Y ; "V"
            Else
            Lcd "V:" ; Y ; "V" ; " "
            End If
            Locate 2 , 9
            If I1 => 10 Then
            Lcd "I:" ; Y1 ; "A"
            Else
            Lcd "I:" ; Y1 ; "A" ; " "
            End If
            Waitms 250
            Return

            دیدگاه


              #7
              پاسخ : هنگ کردن avr

              نوشته اصلی توسط mehrzad119
              سلام دوست من ممنونم از راهنمایی خوب شما
              $regfile = "m32def.dat"
              $crystal = 8000000
              '--------------------------------------------------
              Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.1 , _
              Db6 = Portc.0 , Db7 = Portd.7 , E = Portc.3 , Rs = Portc.4
              Config Lcd = 16 * 2
              Cursor Off : Cls

              Dim B As Byte
              Dim Aaa As Long , Bbb As Byte
              Dim V As Word , W As Single , X As Byte , Y As String * 6 , V1 As Single
              Dim Z As Word , I As Single , X1 As Byte , Y1 As String * 5 , I1 As Single
              '-------------------------------------------------------------------------------------------
              Config Pinb.1 = Input
              Portb.1 = 1
              B = 0
              '--------------------------------------------------
              Locate 1 , 1
              Lcd "YAVAR MOHANDES"
              Locate 2 , 1
              Lcd "09115506309"
              Wait 2
              Cls
              Locate 1 , 1
              Lcd "09115506309"
              Locate 2 , 2
              Lcd "S.C.N.CO v3"
              Wait 3 : Cls
              '--------------------------------------------------
              Config Timer1 = Counter , Edge = Rising
              Config Timer2 = Timer , Async = On , Prescale = 128
              Enable Timer2
              Enable Ovf2
              On Ovf2 Sky
              '--------------------------------------------------
              Enable Interrupts
              Enable Timer1
              On Ovf1 Pulsecount
              Start Timer2
              '-----------------------------------------------------------------------------
              Config Adc = Single , Prescaler = Auto
              Enable Interrupts
              Enable Adc
              Goto Sectic
              '--------------------------------------------------
              Sky:
              Cursor Off
              Stop Timer2
              Stop Timer1
              'Cls : Home
              Aaa = Bbb * 65536
              Aaa = Aaa + Counter1
              Locate 1 , 1
              Lcd " "
              Locate 1 , 1
              Lcd "Freq: " ; Aaa ; " HZ "
              Bbb = 0
              Counter1 = 0
              Start Timer2
              Start Timer1
              Return
              '--------------------------------------------------
              Pulsecount:
              Incr Bbb
              Counter1 = 0
              Return
              '------------------------------------------------------
              Sectic:
              Do
              Incr B
              Select Case B
              Case 1:
              Start Adc : V = Getadc(0) : Waitms 100 : Stop Adc

              W = V / 28.416
              Y = Fusing(w , "#.##&quot
              V1 = Val(y)
              Goto Sectic

              Case 2:
              Start Adc : Z = Getadc(1) : Waitms 100 : Stop Adc

              I = Z / 106
              Y1 = Fusing(i , "#.##&quot
              I1 = Val(y1)
              B = 0
              Gosub Onlcd
              End Select
              Loop
              End
              '-------------------------------------------------------------
              Onlcd:
              Gosub Showi
              Return
              '-------------------------------------------------------------------------------
              Showi:
              Locate 2 , 1
              Lcd " "
              Locate 2 , 1
              If V1 => 10 Then
              Lcd "V:" ; Y ; "V"
              Else
              Lcd "V:" ; Y ; "V" ; " "
              End If
              Locate 2 , 9
              If I1 => 10 Then
              Lcd "I:" ; Y1 ; "A"
              Else
              Lcd "I:" ; Y1 ; "A" ; " "
              End If
              Waitms 250
              Return
              بهتره بجای دستور gosub از دستور goto استفاده کنی!
              1 در دنیا 100 در آخرت (درس و مشق فعالیتمو تو انجمن کم کرده)
              من آنچه شرط بلاغست با تو میآ‌گویم. تو خواه از سخنم پند گیر و خواه ملال. سعدی
              !Electronic On! Programming On
              هوشمندانه سوال بپرسیم!
              http://ir02x6.persiangig.com/logo/eca/tanks_01.png

              دیدگاه


                #8
                پاسخ : هنگ کردن avr

                دوست من توی پروتیوز این پیغام میده
                خواندن از UDR WHILE NO DATA دریافت کرد.
                نوشتن به UDR در حالی که انتقال فعال نیست DATA نادیده گرفته می شود .
                ممنون وتشکر فراوان

                دیدگاه


                  #9
                  پاسخ : هنگ کردن avr

                  سلام خدمت آقا ماهان
                  کارت درسته ممنونم

                  دیدگاه


                    #10
                    پاسخ : هنگ کردن avr

                    اقا ماهان گل انجام شد فرمایشادتون اما بعد از 5ثانیه سطر دوم که ولتمتره پاک شده وسطر اول روشنه با رزولیشن بسیار زیاد ودرهم برهم

                    دیدگاه


                      #11
                      پاسخ : هنگ کردن avr

                      بیا برنامتو اصلاح کردم:

                      کد PHP:
                      $regfile = "m32def.dat"
                      $crystal 8000000
                      '------------------------------------------------------------------------------------------
                      Config Lcdpin Pin Db4 Portc.2 Db5 Portc.1 _
                       Db6 
                      Portc.0 Db7 Portd.7 Portc.3 Rs Portc.4
                      Config Lcd 
                      16 2
                      Cursor Off 
                      Cls

                      Dim B 
                      As Byte
                      Dim Aaa 
                      As Long Bbb As Byte
                       Dim V 
                      As Word As Single As Byte As String V1 As Single
                      Dim Z 
                      As Word As Single X1 As Byte Y1 As String I1 As Single
                      '-------------------------------------------------------------------------------------------
                       
                      Config Pinb.1 Input
                      Portb.1 
                      1
                      0
                      '-------------------------------------------------------------------------------------------
                      Locate 1 1
                      Lcd 
                      "YAVAR MOHANDES"
                      Locate 2 1
                      Lcd 
                      "09115506309"
                      Wait 2
                      Cls
                      Locate 1 
                      1
                      Lcd 
                      "09115506309"
                      Locate 2 2
                      Lcd 
                      "S.C.N.CO v3"
                      Wait 3 Cls
                      '-------------------------------------------------------------------------------------------
                      Config Timer1 Counter Edge Rising
                      Config Timer2 
                      Timer Async On Prescale 128
                      Enable Timer2
                      Enable Ovf2
                      On Ovf2 Sky
                      '-------------------------------------------------------------------------------------------
                       
                      Enable Interrupts
                      Enable Timer1
                      On Ovf1 Pulsecount
                      Start Timer2
                      '-------------------------------------------------------------------------------------------
                      Config Adc Single Prescaler Auto
                      Enable Adc
                      Goto Sectic
                      '-------------------------------------------------------------------------------------------
                      Sky:
                      Cursor Off
                      Stop Timer2
                      Stop Timer1
                      'Cls : Home
                      Aaa Bbb 65536
                      Aaa 
                      Aaa Counter1
                      Locate 1 
                      1
                      Lcd 
                      "        "
                      Locate 1 1
                      Lcd 
                      "Freq: " ; Aaa ; &quotHZ   "
                      Bbb 0
                      Counter1 
                      0
                      Start Timer2
                      Start Timer1
                      Return
                      &
                      #039;--------------------------------------------------------------------------------------------
                      Pulsecount:
                      Incr Bbb
                      Counter1 
                      0
                      Return
                      &
                      #039;--------------------------------------------------------------------------------------------
                      Sectic:
                      Do
                      Incr B
                      Select 
                      Case B
                      Case 1:
                       
                      Start Adc Getadc(0) : Waitms 100 Stop Adc

                      28.416
                      Fusing(, "#.##")
                      V1 Val(y)
                       Goto 
                      Sectic

                      Case 2:
                       
                      Start Adc Getadc(1) : Waitms 100 Stop Adc

                      106
                       Y1 
                      Fusing(, "#.##")
                      I1 Val(y1)
                       
                      0
                      Goto Onlcd
                      End Select
                       Loop
                      End
                      '--------------------------------------------------------------------------------------------
                      Onlcd:
                       Goto 
                      Showi
                      '--------------------------------------------------------------------------------------------
                      Showi:
                      Locate 2 1
                      Lcd 
                      "        "
                      Locate 2 1
                      If V1 =&gt10 Then
                      Lcd 
                      "V:" ; ; "V"
                       Else
                       
                      Lcd "V:" ; ; "V" ; " "
                       
                      End If
                       
                      Locate 2 9
                      If I1 =&gt10 Then
                       Lcd 
                      "I:" ; Y1 ; "A"
                       Else
                       
                      Lcd "I:" ; Y1 ; "A" ; " "
                       
                      End If
                      Waitms 250
                      Goto Onlcd 


                      از تگ های phpو ltr استفاده کردم که کد ها در هم برهم نشون داده نشه و رنگی و خوشگل هم بشه
                      1 در دنیا 100 در آخرت (درس و مشق فعالیتمو تو انجمن کم کرده)
                      من آنچه شرط بلاغست با تو میآ‌گویم. تو خواه از سخنم پند گیر و خواه ملال. سعدی
                      !Electronic On! Programming On
                      هوشمندانه سوال بپرسیم!
                      http://ir02x6.persiangig.com/logo/eca/tanks_01.png

                      دیدگاه


                        #12
                        پاسخ : هنگ کردن avr

                        با سلام نمایش روی lcd را از تو روتین وقفه بردار و در روتی اصلی بنویس و lcd را مثلا هر 100 میلی ثانیه یا بیشتر رفرش کن فکر کنم مشکلت حل میشه،عملی تست میکنی یا با پروتئوس؟

                        دیدگاه


                          #13
                          پاسخ : هنگ کردن avr

                          سلام دوستان از همه عزیزان که لطف کردن ممنونم .من فکر میکنم نویز روی ل سی دی مشکل درست میکنه لطفا بفرمایید چگونه نویز روی ال سی دی رو کم کنیم ممنونم

                          دیدگاه


                            #14
                            پاسخ : هنگ کردن avr

                            هم مدار روساختم وهم باپروتیوز تست میکنم نتیجه یکیست!

                            دیدگاه


                              #15
                              پاسخ : هنگ کردن avr

                              با سلام من به شما گفتم نمایش روی lcd را از تو روتین وقفه بردار و در روتی اصلی بنویس و lcd را مثلا هر 100 میلی ثانیه یا بیشتر رفرش کن،تو پروتئوس که نویز نمیگیره

                              دیدگاه

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