اطلاعیه

Collapse
No announcement yet.

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

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

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

    سلام دوستان
    یک فرکانس متر ساده طراحی کردم و کدش رو با کدویژن نوشتم اما وقتی توی پروتئوس اجرا می کنم روی lcd پیغام نا مربوط نشون میده
    در ادامه فایل پروتئوس و کدویژن و یک اسکرین شات رو میذارم ممنون میشم راهنمایی بفرمایید:
    (در مورد کد باید بگم که این کد پالس های ورودی رو توی یک ثانیه از طریق تایمر 1 میشماره و روی ال سی دی نمایش میده)
    کد:
    #include <mega16.h>
    #include <delay.h>
    #include<stdio.h>
    #asm
      .equ __lcd_port=0x1B ;PORTA
    #endasm 
    #include <lcd.h>
    float f;
    
    
    //LCD---------------------------------------------------
    void display(){
    char lcd_buf[32];
    sprintf(lcd_buf,"F=%6.3f kHz",f/1000);
    TCNT1=0;
    lcd_clear() ;
    lcd_gotoxy(0,0);
    lcd_puts(lcd_buf);
    }
    // Declare your global variables here
    //--------------------------------------------------------
    
    void main(void)
    {
    PORTA=0x00;
    DDRA=0x00;
    PORTB.1=1;
    DDRB.1=0;
    lcd_init(16);
    
    
    while (1)
       {            
       TCCR1B=0x06;
       delay_ms(1000);
       TCCR1B=0x00;
       TCNT1=0;
       f=TCNT1;
       
    display();
    delay_ms(500);
    
        
    
       };
    }


    [glow=red,2,300]لینک دریافت فایل ها:[/glow]
    frequency meter.rar - 79 KB
    برای اینکه چیزی رو بدست بیاری که قبلا وجود نداشته باید کسی بشی که قبلا نبوده...

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

    اینو یه تست بزن
    کد:
    #include <io.h>
    #include <delay.h>
    #include <stdio.h>
    #asm(".equ __lcd_port = 0x1B") /* PORTA */
    #include <lcd.h>
    
    void main() {
     char lcd_buf[17];
     
     PORTA = 0;
     DDRA = ~0;
     PORTB = 1 << 1;
     DDRB = 0;
     
     lcd_init(16);
     
     while (1) {
      TCNT1 = 0;
      TCCR1B = 0x06;
      delay_ms(1000);
      TCCR1B = 0;
      
      sprintf(lcd_buf, "F: %5u Hz", TCNT1);
      lcd_cmd(0x02) /* cursor to home */
      lcd_puts(lcd_buf);
      delay_ms(500);
     }
    }
    گذشت خصلت مردان است

    دیدگاه


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

      مشکل با یک کد دیگه بر طرف شد و نتیجه نهایی رو توی این تاپیک قرار دادم:
      http://www.eca.ir/forum2/index.php?t...0285#msg570285
      برای اینکه چیزی رو بدست بیاری که قبلا وجود نداشته باید کسی بشی که قبلا نبوده...

      دیدگاه


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

        میشه راجع به این کد آخر یک توضیحی بدین؟ من میخوام هر 0.1 ثانیه تعداد پالسی رو که شمرده رو بگه اما نمی دونم چه تغییری توش ایجاد کنم.

        دیدگاه

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