پاسخ : تنظیم منابع کلاک در XMEGA
جناب طراح
در بخش تعریف کلاک برای ایکسمگا از طریق رجیسترهای داخلی بخش کلاک چه نیازی است که بعد از این که این عملیات انجام شد برای استفاده از توابعی مانن util/delay کلاک را دوباره تعریف کنیم یعنی
1- وقتی که برای سیستم نوع کلاک و مقدار اون داده میشه این عملیات توجیهش چی هست؟
البته خود بنده دیدم که اگر این کار رو نکنم تایمینگ درستی در میکرو وجود نداره
2- در تست اخیری که کلاک داخلی 32 مگاهرتز رو فعال کردم برای تابع delay که در برنامه استفاده شده بود زمان تقریبی عملکرد 4 الی 5 برابر زمان واقعی بود
کد زیر در اتمل استودیو نوشته شده است:
جناب طراح
در بخش تعریف کلاک برای ایکسمگا از طریق رجیسترهای داخلی بخش کلاک چه نیازی است که بعد از این که این عملیات انجام شد برای استفاده از توابعی مانن util/delay کلاک را دوباره تعریف کنیم یعنی
define F-CPU 32000000
در پست های قبلی این تاپیک دیدم که به آقای رحیمی فرموده بودین که کد بالا رو قبل از تعریف کتابخانه delay باز تعریف کنند.1- وقتی که برای سیستم نوع کلاک و مقدار اون داده میشه این عملیات توجیهش چی هست؟
البته خود بنده دیدم که اگر این کار رو نکنم تایمینگ درستی در میکرو وجود نداره
2- در تست اخیری که کلاک داخلی 32 مگاهرتز رو فعال کردم برای تابع delay که در برنامه استفاده شده بود زمان تقریبی عملکرد 4 الی 5 برابر زمان واقعی بود
کد زیر در اتمل استودیو نوشته شده است:
کد:
// System Clocks initialization void system_clocks_init(void) { OSC_CTRL|=OSC_RC32MEN_bm; // Internal 32 MHz RC osc. calibration reference clock source: 32.768 kHz Internal Osc. OSC_DFLLCTRL&= ~(OSC_RC32MCREF0_bm | OSC_RC2MCREF_bm); // Enable the autocalibration of the internal 32 MHz RC oscillator DFLLRC32M_CTRL|=DFLL_ENABLE_bm; // Wait for the internal 32 MHz RC oscillator to stabilize while ((OSC_STATUS & OSC_RC32MRDY_bm)==0); // Select the system clock source: 32 MHz Internal RC Osc. CCP=CCP_IOREG_gc; CLK_CTRL=CLK_SCLKSEL_RC32M_gc; // Disable the unused oscillators: 2 MHz, external clock/crystal oscillator, PLL OSC_CTRL&= ~(OSC_RC2MEN_bm | OSC_XOSCEN_bm | OSC_PLLEN_bm); }
دیدگاه