با سلام و تشکر فراوان از استاد گران قدرم آقای کی نژاد
من در بخش 49 آموزش های xmega در قسمت کد نمونه تولید شکل موج توسط واحد DAC به مشکل بر خوردم و این قسمت از کد رو که با عدد 2048 جمع شده رو متوجه نمی شم . البته تا اونجایی که از مدار منطقی یادم هست مثل اینکه از سیستم علامت گذاری متمم مبتا استفاده شده ، ولی فرمول متمم مبتا به این صورت می باشد ؟!!!!!
[N] = 2^n -(N)
کد استاد کی نژاد :
من در بخش 49 آموزش های xmega در قسمت کد نمونه تولید شکل موج توسط واحد DAC به مشکل بر خوردم و این قسمت از کد رو که با عدد 2048 جمع شده رو متوجه نمی شم . البته تا اونجایی که از مدار منطقی یادم هست مثل اینکه از سیستم علامت گذاری متمم مبتا استفاده شده ، ولی فرمول متمم مبتا به این صورت می باشد ؟!!!!!
[N] = 2^n -(N)
کد استاد کی نژاد :
کد:
[FONT=Yekan]/*[/FONT] * XMEGA_dac_0.c * Author: Ozhan KD * www.KnowledgePlus.ir This program produces two sine waves with different frequencies on DACB outputs (PB2 and PB3) PC speaker must be connected to output jack */ #define F_CPU 32000000UL #include <avr/io.h> #include <avr/pgmspace.h> #include <util/delay.h> const signed int sine[256] PROGMEM={ 0 , 50 , 100 , 151 , 201 , 251 , 300 , 350 , 399 , 449 , 497 , 546 , 594 , 642 , 690 , 737 , 783 , 830 , 875 , 920 , 965 , 1009 , 1052 , 1095 , 1137 , 1179 , 1219 , 1259 , 1299 , 1337 , 1375 , 1411 , 1447 , 1483 , 1517 , 1550 , 1582 , 1614 , 1644 , 1674 , 1702 , 1729 , 1756 , 1781 , 1805 , 1828 , 1850 , 1871 , 1891 , 1910 , 1927 , 1944 , 1959 , 1973 , 1986 , 1997 , 2008 , 2017 , 2025 , 2032 , 2037 , 2041 , 2045 , 2046 , 2047 , 2046 , 2045 , 2041 , 2037 , 2032 , 2025 , 2017 , 2008 , 1997 , 1986 , 1973 , 1959 , 1944 , 1927 , 1910 , 1891 , 1871 , 1850 , 1828 , 1805 , 1781 , 1756 , 1729 , 1702 , 1674 , 1644 , 1614 , 1582 , 1550 , 1517 , 1483 , 1447 , 1411 , 1375 , 1337 , 1299 , 1259 , 1219 , 1179 , 1137 , 1095 , 1052 , 1009 , 965 , 920 , 875 , 830 , 783 , 737 , 690 , 642 , 594 , 546 , 497 , 449 , 399 , 350 , 300 , 251 , 201 , 151 , 100 , 50 , 0 ,-50 ,-100 ,-151 ,-201 ,-251 ,-300 ,-350 ,-399 ,-449 ,-497 ,-546 ,-594 ,-642 ,-690 ,-737 , -783 ,-830 ,-875 ,-920 ,-965 ,-1009 ,-1052 ,-1095 ,-1137 ,-1179 ,-1219 ,-1259 ,-1299 ,-1337 ,-1375 ,-1411 , -1447 ,-1483 ,-1517 ,-1550 ,-1582 ,-1614 ,-1644 ,-1674 ,-1702 ,-1729 ,-1756 ,-1781 ,-1805 ,-1828 ,-1850 ,-1871 , -1891 ,-1910 ,-1927 ,-1944 ,-1959 ,-1973 ,-1986 ,-1997 ,-2008 ,-2017 ,-2025 ,-2032 ,-2037 ,-2041 ,-2045 ,-2046 , -2047 ,-2046 ,-2045 ,-2041 ,-2037 ,-2032 ,-2025 ,-2017 ,-2008 ,-1997 ,-1986 ,-1973 ,-1959 ,-1944 ,-1927 ,-1910 , -1891 ,-1871 ,-1850 ,-1828 ,-1805 ,-1781 ,-1756 ,-1729 ,-1702 ,-1674 ,-1644 ,-1614 ,-1582 ,-1550 ,-1517 ,-1483 , -1447 ,-1411 ,-1375 ,-1337 ,-1299 ,-1259 ,-1219 ,-1179 ,-1137 ,-1095 ,-1052 ,-1009 ,-965 ,-920 ,-875 ,-830 , -783 ,-737 ,-690 ,-642 ,-594 ,-546 ,-497 ,-448 ,-399 ,-350 ,-300 ,-251 ,-201 ,-151 ,-100 ,-50}; int main(void) { unsigned char i=0; //configuration of system clock , 32MHZ internal OSC_CTRL|=OSC_RC32MEN_bm; while(!(OSC_STATUS & OSC_RC32MRDY_bm)); CCP=CCP_IOREG_gc; CLK_CTRL=CLK_SCLKSEL_RC32M_gc; //configuration of DAC DACB_CTRLB=DAC_CHSEL_DUAL_gc; DACB_CTRLC=DAC_REFSEL_AREFA_gc; DACB_CTRLA=DAC_CH1EN_bm|DAC_CH0EN_bm|DAC_ENABLE_bm; while (1) { while ( !(DACB_STATUS & DAC_CH0DRE_bm)); DACB_CH0DATA = 2048+pgm_read_word(&sine[i]); while ( !(DACB_STATUS & DAC_CH1DRE_bm)); DACB_CH1DATA= 2048+pgm_read_word(&sine[(unsigned char)(i<<1)]); i++; _delay_us(10); } [FONT=Yekan]}[/FONT]
دیدگاه