اطلاعیه

Collapse
No announcement yet.

چطور نمونه های سینوسی در AVR رو زیاد کنم؟

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

    چطور نمونه های سینوسی در AVR رو زیاد کنم؟

    سلام دوستان

    من یک برنامه دارم که میخوام به کمک تعریف تابع سینوسی در AVR در خروجی DAC ، تابع سینوسی رو بگیرم .

    سینوسی رو تونستم با زیاد کردن مقدار X تا 50 هرتز زیاد کنم ولی نمونه هایی که میگیره در حد 2 تا 3 تاست .

    چکار کنم که نمونه هاش زیاد بشه ؟

    کد:
    #include <mega16.h>
    #include <math.h>
    
    int s;
    float x,a;
    void sine(void);
    
    interrupt [TIM0_COMP] void timer0_comp_isr(void)
    {        
       sine();     
    }
    
    
    void sine(void)
    {     
        s=(sin((x/20)*(2*PI))+1)*a;
        x=x+5;
        PORTD=s;    
    }

    #2
    پاسخ : چطور نمونه های سینوسی در AVR رو زیاد کنم؟

    نوشته اصلی توسط amin.elc88
    سلام دوستان

    من یک برنامه دارم که میخوام به کمک تعریف تابع سینوسی در AVR در خروجی DAC ، تابع سینوسی رو بگیرم .

    سینوسی رو تونستم با زیاد کردن مقدار X تا 50 هرتز زیاد کنم ولی نمونه هایی که میگیره در حد 2 تا 3 تاست .

    چکار کنم که نمونه هاش زیاد بشه ؟

    کد:
    سینوس گرفتن زمان بر هست 
    شما بهتره یک look up table درست کنید و نمونه هاتونو توش بریزید و تو فلش میکرو ذخبره کنید و بخونیشون
    
    #include <mega16.h>
    #include <math.h>
    
    int s;
    float x,a;
    void sine(void);
    
    interrupt [TIM0_COMP] void timer0_comp_isr(void)
    {        
       sine();     
    }
    
    
    void sine(void)
    {     
        s=(sin((x/20)*(2*PI))+1)*a;
        x=x+5;
        PORTD=s;    
    }

    head<=
    ...تشکر خدا...
    [img width=97 height=100]http://mahdi3d.persiangig.com/image/5280543_t.jpg[/img]

    دیدگاه

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