اطلاعیه

Collapse
No announcement yet.

موج سینوسی با avr

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

    موج سینوسی با avr

    با سلام
    ایا می شه با avrو با dac8بیتی یه موج سینوسی 200khzساخت.
    ممنون می شم که کمکم کنید

    #2
    پاسخ : موج سینوسی با avr

    با فرض اینکه قرار باشه موج با 10 نمونه ساخته بشه فرکانس کاری میکرو باید 4 مگاهرتز باشه و نمونه ها پشت سرهم و از طریق دستورات اسمبلی توی خروجی قرار بگیرند.
    هرچی هم بخوای موجت دقیق تر باشه باید تعداد نمونه ها رو افزایش بدی و به تبع اون فرکانس افزایش پیدا کنه.
    ولی راحتترین راه استفاده از Pwm برای تولید موج سینوسیه
    ... و (بدانيد) گرفتن تصميمهاى محكم (براى رسيدن به اهداف بزرگ) با خوش گذرانى و سفرهآ‌هاى رنگين سازگار نيست و چه بسيار كه خواب شبانه تصميمهاى محكم روز را از ميان برده و تاريكيآ‌ها، خاطره همتآ‌هاى بلند را از يادها محو كرده است. (نهجآ‌البلاغه، خطبه211)

    امام علي (ع):کسي که به وقت ياري رهبرش در خواب باشد، با لگد دشمنش بيدار مي شود (غررالحکم،ص 422)

    دیدگاه


      #3
      پاسخ : موج سینوسی با avr

      ممنون به خاطره جوابتون
      من یه برنامه نوشتم با تایمر و یه dacاما بیشتر از 800hzنتونستم موج سینوسی بگیرم.
      کد:
      #include <mega32.h>
      #include <math.h> 
      #include <delay.h>
      #include <stdio.h> 
      
      // Alphanumeric LCD functions
      #include <alcd.h>
      
      char a[256],i=0,s,select=0;
      double x;
      
      
      interrupt [TIM1_OVF] void timer1_ovf_isr(void)
       {
       PORTD=a[i];
       i++; 
       if(i==255)i=0;
      
            
       TCNT1H=0xff;
       TCNT1L=0xf7;
      
       }
      
      
      
      
      
             
      
      void main(void)
      {
      
      a[0]=131; a[1]=134; a[2]=137; a[3]=140; a[4]=144; a[5]=147; a[6]=150; a[7]=153;
      a[8]=156; a[9]=159; a[10]= 162; a[11]= 165; a[12]=168;a[13] = 171;a[14]= 174;a[15] =177;a[16]=180;a[17]=183;a[18]=185;a[19]=188;a[20]=191;
      a[21]=194;a[22]= 196;a[23]=199;a[24]= 201;a[25]= 204;a[26]=206;a[27]= 209;a[28] =211;a[29]= 214;a[30]=216;a[31]=218;a[32]=220;a[33]=222;
      a[34]=225;a[35]= 227;a[36]=229;a[37]= 230;a[38]= 232;a[39]=234;a[40]= 236;a[41]=237;a[42]= 239;a[43]=240;a[44]= 242;a[45]= 243;a[46]=245;
      a[47]=246;a[48]= 247;a[49] =248;a[50]=249;a[51] =250;a[52] =251;a[53] =252;a[54] =252;a[55] =253;a[56]=254;a[57]= 254;a[58]= 255;a[59]= 255;
      a[60]=255;a[61]=255;a[62] =255;a[63]= 255;a[64] =255;a[65]= 255;a[66] =255;a[67]= 255;a[68]= 255;a[69] =254;a[70] =254;a[71] =253;a[72]= 252;
      a[73]=252;a[74]= 251;a[75] =250;a[76]= 249;a[77] =248;a[78]= 247;a[79]= 246;a[80] =245;a[81]= 243;a[82] =242;a[83] =240;a[84] =239;a[85] =237;
      a[86]=236;a[87]= 234;a[88] =232;a[89]= 230;a[90] =229;a[91]= 227;a[92]= 225;a[93] =222;a[94]= 220;a[95] =218;a[96] =216;a[97] =214;a[98] =211;
      a[99]=209;a[100]= 206;a[101]= 204;a[102]= 201;a[103]= 199;a[104]= 196;a[105]= 194;a[106] =191;a[107] =188;a[108] =185;a[109] =183;a[110]= 180;a[111] =177;
      a[112]=174;a[113]= 171;a[114] =168;a[115]= 165;a[116]= 162;a[117]= 159;a[118]= 156;a[119]= 153;a[120]= 150;a[121]= 147;a[122] =144;a[123]= 140;a[124] =137;
      a[125]=134;a[126]= 131;a[127] =128;a[128]= 125;a[129]= 122;a[130]= 119;a[131] =116;a[132]= 112;a[133]= 109;a[134]= 106;a[135] =103;a[136]= 100;a[137] = 97;
      a[138]=94;a[139] = 91;a[140] =88;a[141] = 85;a[142] = 82;a[143] = 79;a[144] = 76;a[145] = 73;a[146] = 71;a[147] = 68;a[148] =65;a[149]= 62;a[150] = 60;
      a[151]=57;a[152] = 55;a[153] =52;a[154] = 50;a[155] = 47;a[156] = 45;a[157] = 42;a[158] = 40;a[159]= 38;a[160] = 36;a[161] = 34;a[162]= 31;a[163] = 29;
      a[164]=27;a[165] = 26;a[166] =24;a[167] = 22;a[168] = 20;a[169] = 19;a[170] = 17;a[171] = 16;a[172] = 14;a[173] = 13;a[174] =11;a[175]= 10;a[176] = 9;
      a[177]=8;a[178] = 7;a[179]  =6;a[180] = 5;a[181] = 4;a[182] = 4;a[183] = 3;a[184] = 2;a[185] = 2;a[186] = 1;a[187] = 1;a[188] = 1;a[189] = 1;
      a[190]=1;a[191] = 1;a[192]  =1;a[193] = 1;a[194] = 1;a[195] = 1;a[196] = 1;a[197] = 2;a[198] = 2;a[199] = 3;a[200] = 4;a[201] = 4;a[202] = 5;
      a[203]=6;a[204] = 7;a[205]  =8;a[206] = 9;a[207] =10;a[208] =11;a[209] = 13;a[210] =14;a[211] =16;a[212] =17;a[213] =19;a[214] = 20;a[215] = 22;
      a[216]=24;a[217] = 26;a[218] =27;a[219] = 29;a[220] = 31;a[221] = 34;a[222] =36;a[223] = 38;a[224] =40;a[225] = 42;a[226] = 45;a[227]= 47;a[228]= 50;
      a[229]=52;a[230] = 55;a[231] =57;a[232] = 60;a[233] = 62;a[234] = 65;a[235] =68;a[236] = 71;a[237] =73;a[238] = 76;a[239] = 79;a[240]= 82;a[241]= 85;
      a[242]= 88;a[243]= 91;a[244]= 94;a[245]= 97;a[246]= 100;a[247]= 103;a[248] =106;a[249]= 109;a[250] =112;a[251]= 116;a[252]= 119;a[253]= 122;a[254]=125;a[255]=128;
      
      // Input/Output Ports initialization
      // Port A initialization
      // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out 
      // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 
      PORTA=0x00;
      DDRA=0xFF;
      
      // Port B initialization
      // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
      // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
      PORTB=0x00;
      DDRB=0x00;
      
      // Port C initialization
      // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out 
      // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 
      PORTC=0x00;
      DDRC=0xFF;
      
      // Port D initialization
      // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out 
      // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 
      PORTD=0x00;
      DDRD=0xFF;
      
      
      
      
      
       TCCR1A=0x00;
      TCCR1B=0x01;
      TCNT1H=0xff;
      TCNT1L=0xf7;
      ICR1H=0x00;
      ICR1L=0x00;
      OCR1AH=0x00;
      OCR1AL=0x00;
      OCR1BH=0x00;
      OCR1BL=0x00;
      
      
      
      
      
       TIMSK=0x04;
      
      // LCD module initialization
      lcd_init(16);
      
      // Global enable interrupts
      #asm("sei")
      
      while (1)
         {
      
          
         };
      }
      فقط یه سوال دیگه اگه من بخوام با pwmیه موج سینوسی بسازم باید از فیلترr-cاستفاده کنم این مقادیرشو چطوری می شه بدست اورد

      دیدگاه


        #4
        پاسخ : موج سینوسی با avr

        برای رسیدن به حداکثر سرعت باید از دستورات اسمبلی استفاده کنی
        فیلتر rc رو هم توی تاپیک ها بگردی زدن چطور باید مقادیر رو انتحاب کنی.
        ... و (بدانيد) گرفتن تصميمهاى محكم (براى رسيدن به اهداف بزرگ) با خوش گذرانى و سفرهآ‌هاى رنگين سازگار نيست و چه بسيار كه خواب شبانه تصميمهاى محكم روز را از ميان برده و تاريكيآ‌ها، خاطره همتآ‌هاى بلند را از يادها محو كرده است. (نهجآ‌البلاغه، خطبه211)

        امام علي (ع):کسي که به وقت ياري رهبرش در خواب باشد، با لگد دشمنش بيدار مي شود (غررالحکم،ص 422)

        دیدگاه

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