با سلام
این برنامه ساده به منظور یادگیری تنظیم کلاک هست
در این برنامه از pll استفاده شده ، ضریب آن 2 هست . سورس کلاک کریستال 16 مگاهرتزی هست. مقسم ها A=1 و B&C=2 هستن . چرا وقتی ضریب pll رو میبرم رو 8، میکرو از کار می افته؟
فکر میکنم با این تنظیمات پریفرال 4=128000000 و پریفرال 2=64000000 و cpu =32000000 که همه قانونی هستن . چرا نمیشه؟
این برنامه ساده به منظور یادگیری تنظیم کلاک هست
در این برنامه از pll استفاده شده ، ضریب آن 2 هست . سورس کلاک کریستال 16 مگاهرتزی هست. مقسم ها A=1 و B&C=2 هستن . چرا وقتی ضریب pll رو میبرم رو 8، میکرو از کار می افته؟
فکر میکنم با این تنظیمات پریفرال 4=128000000 و پریفرال 2=64000000 و cpu =32000000 که همه قانونی هستن . چرا نمیشه؟
[FONT=Yekan]#include <xmega128a1.h>[/FONT]#include <io.h>
#include <delay.h>
void clk_setting (void)
{
OSC.XOSCCTRL|=0Xc3;
OSC.CTRL=0X08;
while(!(OSC.STATUS&0X08));
OSC.PLLCTRL=0XC8;
OSC.CTRL|=0X10;
while(!(OSC.STATUS&0X10));
CCP=0XD8;
CLK.CTRL=0X04;
CCP=0XD8;
CLK.PSCTRL=0X03;
}
void main (void)
{
clk_setting();
PORTC.DIRSET=0xff;
PORTB.DIRSET=PIN0_bm;
PORTCFG.CLKEVOUT=0x01;
while(1)
{
PORTC.OUTTGL=PIN3_bm;
delay_ms(20);
}
[FONT=Yekan]}[/FONT]
دیدگاه