اطلاعیه

Collapse
No announcement yet.

کمک برای فرکانس متر دیجیتال

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

    کمک برای فرکانس متر دیجیتال

    با سلام
    از دوستانی که با پروتوس کار کردند خواهش می کنم فایل شبیه سازی شده فرکانس متر دیجیتال رو برام پلود کنند اینم لینک برنامه به زبان بیسیک
    http://rameshk.persiangig.com/f.zip
    می خوام ببینم جواب میده یانه؟ بعد برم سراغ ساختش
    با تشکر
    rameshk8@gmail.com

    #2
    پاسخ : کمک برای فرکانس متر دیجیتال

    سلام،

    فایل پروتوس را از آدرس زیر بگیر.(ferquency meter.rar را دانلود کن)


    http://www.4shared.com/dir/1546538/19715082/AVR.html

    واما برای دقیقتر شدن برنامه چند تغییر توی اون دادم به اونها هم دقت کن.

    1-از کریستال خارجی استفاده کن.

    2- پرسکلر برنامه را 1 قرار دادم و مقدار I را به 31250 تغییر دادم.

    3- چون LCD 2*16 هست لذا برای نمایش فرکانسهای زیاد باید از طول FERQUENCY IS کم کنی که برای نمایش کامل فرکانس اون را در سطر دوم نوشتم.

    موفق باشید.

    صلی الله علیک یا اباعبدالله الحسین.

    صلی الله علی الباکین علی الحسین(ع).

    دیدگاه


      #3
      پاسخ : کمک برای فرکانس متر دیجیتال

      سلام
      حسین آقا دستت درد نکنه، خیلی لطف کردی
      بازم تشکر
      rameshk8@gmail.com

      دیدگاه


        #4
        پاسخ : کمک برای فرکانس متر دیجیتال

        سلام دوستان
        من نیاز به یک فرکانس متر دقیق با AVR دارم که از 0 تا 500 khz رو با حداقل دقت 1 HZ اندازه بگیره یه برنام نوشتم در فرکانسهای پایین دقتش خوبه ولی وقتی به کیلو هرتز می رسه خطای آن بالای 10 - 20 هرتز میشه در حالی که من می خوام خیلی دقیق باشه.
        یه ورژن دیگ از برنامه ام هست که چند بار می خونه و میانگین میگیره آنم باز مشکل داره.نمی دونم مشکل از کجاست.
        برنامه ای که نوشتم اینه:
        لطفاً کمکم کنین.
        خیلی نیاز دارم.
        '--------------------------------------------------------------------------
        '
        ' Frequency Meter
        ' 1386/5/16
        ' ver 1.01.1
        '--------------------------------------------------------------------------
        ' Micro Setting

        $regfile = "M32def.dat"
        $crystal = 8000000
        $baud = 9600

        '--------------------------------------------------------------------------
        ' Dim Variable
        Dim Count As Long
        Dim I As Long

        '--------------------------------------------------------------------------
        ' Timer Setting

        Config Timer1 = Counter , Edge = Rising
        Counter1 = 0

        Count = 0
        I = 0

        Config Timer0 = Timer , Prescale = 1
        Enable Interrupts
        Enable Timer0
        On Ovf0 Timer0_isr

        Stop Timer0
        start timer0

        Do
        Loop

        End

        '--------------------------------------------------------------------
        Timer0_isr:

        I = I + 1
        Count = Count + Counter1
        Counter1 = 0
        Stop Timer0

        If I = 31250 Then

        Print Count

        Upperline
        Cls
        Lcd Count

        Counter1 = 0
        Count = 0
        I = 0

        End If

        start timer0

        Return
        «اگر واقعیات با نظریات هماهنگی ندارند، واقعیتآ‌ها را تغییر بده.»
        آلبرت انشتین

        دیدگاه


          #5
          پاسخ : کمک برای فرکانس متر دیجیتال

          سلام
          دوست عزیز شما،فکر میکنم اگر دقت بیشتری میخواید باید با اسمبلی برنامه رو بنویسید
          و یه سوال دیگه،شما نیاز دارید که هر چند ثانیه مقدار فرکانس به روز بشه؟
          فکر میکنم اگر زمان شمارش رو زیاد کنید خطا کمتر بشه
          در دیر مغان آمد یارم قدحی در دست
          مست از می می خواران از نرگس مستش مست

          دیدگاه


            #6
            پاسخ : کمک برای فرکانس متر دیجیتال

            شما برای ثبت تعداد نمونه از rtcتایمر 2 استفاده کنید
            ما زنده به آنیم که آرام نگیریم موجیم که آسودگی ما عدم ماست

            وقتی یک ملت برای فرهنگ و نژاد و ملیت خویش ارزشی قائل نشد و حقی را که طبیعت برای نگاهداری نژاد پاکش به او ارزانی داشته بود پایمال ساخت و به بیگانگان روی آورد و تسلیم شد دیگر حق ندارد از شکست و بدبختی سیاسی که خودش باعث آن شده است شکایت کند .ادولف هیتلر

            r.babazadeh@yahoo.com

            دیدگاه


              #7
              پاسخ : کمک برای فرکانس متر دیجیتال

              سلام
              خیلی ممنون از لطفتون؛زمان بروز شدنم می خوام 0.1 ثانیه یا حد اکثر 1 ثانیه باشه ؛ من اسمبلی رو زیاد بلد نیستم اگر کسی می تونه کمک کنه لطفاً
              مرسی
              «اگر واقعیات با نظریات هماهنگی ندارند، واقعیتآ‌ها را تغییر بده.»
              آلبرت انشتین

              دیدگاه


                #8
                پاسخ : کمک برای فرکانس متر دیجیتال

                مرسی دوست عزیز با RTC هم تست می کنم.
                «اگر واقعیات با نظریات هماهنگی ندارند، واقعیتآ‌ها را تغییر بده.»
                آلبرت انشتین

                دیدگاه


                  #9
                  پاسخ : کمک برای فرکانس متر دیجیتال

                  سلام
                  این چیز جالبیه ببینش:
                  http://www.myplace.nu/avr/countermeasures/index.htm
                  در دیر مغان آمد یارم قدحی در دست
                  مست از می می خواران از نرگس مستش مست

                  دیدگاه


                    #10
                    پاسخ : کمک برای فرکانس متر دیجیتال

                    نوشته اصلی توسط farshchian
                    سلام دوستان
                    من نیاز به یک فرکانس متر دقیق با AVR دارم که از 0 تا 500 khz رو با حداقل دقت 1 HZ اندازه بگیره یه برنام نوشتم در فرکانسهای پایین دقتش خوبه ولی وقتی به کیلو هرتز می رسه خطای آن بالای 10 - 20 هرتز میشه در حالی که من می خوام خیلی دقیق باشه.
                    یه ورژن دیگ از برنامه ام هست که چند بار می خونه و میانگین میگیره آنم باز مشکل داره.نمی دونم مشکل از کجاست.
                    برنامه ای که نوشتم اینه:
                    لطفاً کمکم کنین.
                    خیلی نیاز دارم.
                    '--------------------------------------------------------------------------
                    '
                    ' Frequency Meter
                    ' 1386/5/16
                    ' ver 1.01.1
                    '--------------------------------------------------------------------------
                    ' Micro Setting

                    $regfile = "M32def.dat"
                    $crystal = 8000000
                    $baud = 9600

                    '--------------------------------------------------------------------------
                    ' Dim Variable
                    Dim Count As Long
                    Dim I As Long

                    '--------------------------------------------------------------------------
                    ' Timer Setting

                    Config Timer1 = Counter , Edge = Rising
                    Counter1 = 0

                    Count = 0
                    I = 0

                    Config Timer0 = Timer , Prescale = 1
                    Enable Interrupts
                    Enable Timer0
                    On Ovf0 Timer0_isr

                    Stop Timer0
                    start timer0

                    Do
                    Loop

                    End

                    '--------------------------------------------------------------------
                    Timer0_isr:

                    I = I + 1
                    Count = Count + Counter1
                    Counter1 = 0
                    Stop Timer0

                    If I = 31250 Then

                    Print Count

                    Upperline
                    Cls
                    Lcd Count

                    Counter1 = 0
                    Count = 0
                    I = 0

                    End If

                    start timer0

                    Return
                    دوست عزیز برنامه اتون رو با سی بنویسید
                    موفق باشی :redface:

                    دیدگاه


                      #11
                      پاسخ : کمک برای فرکانس متر دیجیتال

                      سلام دوستان
                      مرسی از کمک همگی، من از RTC تایمر 2 استفاده کردم مشکل تا حد زیادی حل شد الان خطام رسیده حول حوش 5 HZ ولی من می خوام 1 HZ باشه آنم در زمان نمونه برداری حداکثر 1 ثانیه،فر می کنم این کریستال ساعت هم زیاد دقیق نیست.اگر کسی کمک دیگهای به ذهنش می رسه لطفاً کمکم کنه
                      مرسی
                      «اگر واقعیات با نظریات هماهنگی ندارند، واقعیتآ‌ها را تغییر بده.»
                      آلبرت انشتین

                      دیدگاه


                        #12
                        پاسخ : کمک برای فرکانس متر دیجیتال

                        سلام دوستان
                        مرسی از کمک همگی، من از RTC تایمر 2 استفاده کردم مشکل تا حد زیادی حل شد الان خطام رسیده حول حوش 5 HZ ولی من می خوام 1 HZ باشه آنم در زمان نمونه برداری حداکثر 1 ثانیه،فر می کنم این کریستال ساعت هم زیاد دقیق نیست.اگر کسی کمک دیگهای به ذهنش می رسه لطفاً کمکم کنه
                        مرسی
                        اینم برنامه اش
                        '--------------------------------------------------------------------------
                        '
                        ' Frequency Meter
                        ' 1386/5/16
                        ' ver 1.01.1
                        '--------------------------------------------------------------------------
                        ' Micro Setting

                        $regfile = "M32def.dat"
                        $crystal = 16000000
                        $baud = 9600

                        '--------------------------------------------------------------------------
                        ' Dim Variable
                        Dim Count As Long
                        Dim I As Long
                        Dim J As Long

                        '--------------------------------------------------------------------------
                        ' Timer Setting

                        Config Timer1 = Counter , Edge = Falling
                        Counter1 = 0

                        Count = 0
                        I = 0

                        Config Timer2 = Timer , Async = On , Prescale = 1
                        Enable Interrupts
                        Enable Timer2
                        On Ovf2 Timer2_isr

                        Stop Timer2
                        Start Timer2

                        Do
                        Loop

                        End

                        '--------------------------------------------------------------------
                        Timer2_isr:

                        Stop Timer2
                        Count = Count + Counter1
                        Counter1 = 0
                        I = I + 1


                        If I = 128 Then

                        Cls
                        Upperline
                        Lcd "FREQ=" ; Count ; " HZ"

                        Print "FREQ=" ; Count ; " HZ"

                        Counter1 = 0
                        Count = 0
                        I = 0
                        Timer2 = 0

                        End If

                        Start Timer2

                        Return
                        «اگر واقعیات با نظریات هماهنگی ندارند، واقعیتآ‌ها را تغییر بده.»
                        آلبرت انشتین

                        دیدگاه


                          #13
                          پاسخ : کمک برای فرکانس متر دیجیتال

                          نوشته اصلی توسط farshchian
                          سلام دوستان
                          مرسی از کمک همگی، من از RTC تایمر 2 استفاده کردم مشکل تا حد زیادی حل شد الان خطام رسیده حول حوش 5 HZ ولی من می خوام 1 HZ باشه آنم در زمان نمونه برداری حداکثر 1 ثانیه،فر می کنم این کریستال ساعت هم زیاد دقیق نیست.اگر کسی کمک دیگهای به ذهنش می رسه لطفاً کمکم کنه
                          مرسی
                          نه مشکل اصلی شما کامپایلره و دستورات سطح ماشینی که اون کامپایل می کنه
                          گفتم اگه با سی بنویسید مشکلتون حل میشه

                          دیدگاه


                            #14
                            پاسخ : کمک برای فرکانس متر دیجیتال

                            با سلام و آرزوی قبولی طاعات و عبادات خدمت همه دوستان خوبم.
                            متاسفانه من بر هنوز هم مشکل عدم دقت فرکانس متر رو دارم برنامه رو با C نوشتم ولی هنوز هم مشکل زیادی داره مثلاً تو فرکانس 100000hz این 5-10 hz تو زمان نمونه برداری 1 ثانیه تغییرات داره.ولی من میخوام حداکثر 1hz باشه من تمام تلاشمو کردم ولی هنوز نتیج نگرفتم.اگر کسی تجربه داره کمکم کنه حالا این فرکانس متر دقیق با AVR هم نشد نشده با سخت افزار دیگری میشه دقیق این کار رو انجام داد.
                            من شدیداً نیاز به این وسیله دارم .مرسی از لطفتون.منتظر جوابتون هستم.
                            خدا نگهدار.
                            #include <stdio.h>
                            #include <delay.h>
                            #include <lcd.h>
                            #include <mega32.h>

                            #asm
                            .equ __lcd_port=0x1B;
                            #endasm

                            unsigned char lcd_buffer[25],i;
                            long int freq;

                            void main (void)
                            {
                            PORTA=0x00;
                            DDRA=0x00;

                            PORTB=0x00;
                            DDRB=0x00;

                            PORTC=0x00;
                            DDRC=0x00;

                            PORTD=0x00;
                            DDRD=0x00;

                            // Timer/Counter 0 initialization
                            // Clock source: System Clock
                            // Clock value: Timer 0 Stopped
                            // Mode: Normal top=FFh
                            // OC0 output: Disconnected
                            TCCR0=0x00;
                            TCNT0=0x00;
                            OCR0=0x00;

                            // Timer/Counter 1 initialization
                            // Clock source: System Clock
                            // Clock value: 16000.000 kHz
                            // Mode: Normal top=FFFFh
                            // OC1A output: Discon.
                            // OC1B output: Discon.
                            // Noise Canceler: Off
                            // Input Capture on Falling Edge
                            TCCR1A=0x00;
                            TCCR1B=0x06;
                            TCNT1H=0x00;
                            TCNT1L=0x00;
                            ICR1H=0x00;
                            ICR1L=0x00;
                            OCR1AH=0x00;
                            OCR1AL=0x00;
                            OCR1BH=0x00;
                            OCR1BL=0x00;

                            // Timer/Counter 2 initialization
                            // Clock source: TOSC1 pin
                            // Clock value: PCK2
                            // Mode: Normal top=FFh
                            // OC2 output: Disconnected
                            ASSR=0x08;
                            TCCR2=0x01;
                            TCNT2=0x00;
                            OCR2=0x00;


                            // USART initialization
                            // Communication Parameters: 8 Data, 1 Stop, No Parity
                            // USART Receiver: On
                            // USART Transmitter: On
                            // USART Mode: Asynchronous
                            // USART Baud rate: 9600
                            UCSRA=0x00;
                            UCSRB=0x18;
                            UCSRC=0x86;
                            UBRRH=0x00;
                            UBRRL=0x67;

                            // Timer(s)/Counter(s) Interrupt(s) initialization
                            TIMSK=0x40;

                            // LCD Module initialization
                            lcd_init(16);
                            lcd_putsf("Start"
                            printf("Start\n\r"
                            delay_ms(100);
                            i=0;
                            freq=0;
                            #asm("sei&quot
                            while(1);
                            }
                            //////////////////////////////////////////////

                            // Timer 2 overflow interrupt service routine
                            interrupt [TIM2_OVF] void timer2_ovf_isr(void)
                            {

                            freq+=TCNT1;
                            TCNT1=0x0;
                            i++;
                            //TCNT2=0x0;

                            if(i>=128)
                            {
                            i=0;
                            lcd_clear();
                            sprintf(lcd_buffer,"Freq=%ld Hz",freq);
                            printf("Freq=%ld Hz\n\r",freq);
                            lcd_puts(lcd_buffer);
                            TCNT1=0;
                            freq=0;
                            TCNT2=0x0;
                            }
                            //TCNT2=0x0;
                            }
                            «اگر واقعیات با نظریات هماهنگی ندارند، واقعیتآ‌ها را تغییر بده.»
                            آلبرت انشتین

                            دیدگاه


                              #15
                              پاسخ : کمک برای فرکانس متر دیجیتال

                              سلام
                              میشه سخت افزارشو هم بزاری
                              مرسی
                              A-Hosseini

                              دیدگاه

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