پاسخ : تولید موج سینوسی با AVR
البته برای بدست آوردم موج سینوسی باید خروجی رو از یه فیلتر پایین گذر با فرکانس قطع 400 عبور بدین
نوشته اصلی توسط ZAHR4
/* In the name of God * spwm50HZmega16.c * * Created: 11/15/2015 11:28:28 PM * Author: Amin Taheri */ #include <io.h> #include <mega16.h> #include <delay.h> #define xtal 8000000 char sinewave[]= {0,0,1,1,2,4,5,7,9,12,15,18,21,24,28,32,36,41,45,50,55,60, 65,71,76,82,88,94,100,106,112,118,124,130,136,142,148,154, 160,166,172,178,183,189,194,199,204,209,213,218,222,226,230, 233,236,239,242,245,247,249,250,252,253,253,254,254,254,253, 253,252,250,249,247,245,242,239,236,233,230,226,222,218,213, 209,204,199,194,189,183,178,172,166,160,154,148,142,136,130, 124,118,112,106,100,94,88,82,76,71,65,60,55,50,45,41,36,32,28, 24,21,18,15,12,9,7,5,4,2,1,1,0,0, }; char i=0; interrupt [TIM1_COMPA] void timer1_compa_isr(void) { OCR1A=sinewave[i]; i++; if (i==129) i=0; } void main(void) { DDRD=0xFF; TCCR1A=0x81; TCCR1B=0x0A; TIMSK=0x10; #asm("sei"); while (1) { // Please write your application code here } }
دیدگاه