سلام به همه
من یه برنامه ساده نوشتم که پورت 1 - پین صفر رو یک و صفر میکنه
وقتی با بوت لودر برنامه رو پروگرم(از آدرس 2000) میکنم ، -> فرکانس کلاک پین خروجی روی اسکوپ 12.5Mhz هست.
وقتی که حافظه رو پاک میکنم و بدون بوت لودر برنامه رو پروگرم (از آدرس 00 - با Jlink) میکنم -> فرکانس کلاک پین خروجی روی اسکوپ 500Khz هست.
برنامه اول با بوت لودر : فقط پین یک و صفر میشه
برنامه دوم : تنظیمات فرکانس میکرو هم اعمال شده
تقریبا همه تنظیمات رو درست انجام میدم ولی باز تغییر در خروجی نمیبینم
مثل اینکه هر چقدر من با فرکانس و دستکاری میکنم تاثیری نداره
system_LPC17xx.c رو نگاه کردم ولی از تنظیمات فرکانسش چیزی سر در نیاوردم تا صبح باهاش ور رفتم :sad:
لطفا راهنماییم کنید
ممنون
من یه برنامه ساده نوشتم که پورت 1 - پین صفر رو یک و صفر میکنه
وقتی با بوت لودر برنامه رو پروگرم(از آدرس 2000) میکنم ، -> فرکانس کلاک پین خروجی روی اسکوپ 12.5Mhz هست.
وقتی که حافظه رو پاک میکنم و بدون بوت لودر برنامه رو پروگرم (از آدرس 00 - با Jlink) میکنم -> فرکانس کلاک پین خروجی روی اسکوپ 500Khz هست.
برنامه اول با بوت لودر : فقط پین یک و صفر میشه
کد:
[left] #include "LPC17xx.h" int main(void) { //unsigned int i,a; //************************* Tanzim Freq CPU ****************************************** /* unsigned char m,n,d; m=100;//Multiplier value n=6;//Pre-Divider value d=2;//cpu div D=4-1=3 //Config LPC1768 Register LPC_SC->SCS=0x20;// Enable Crystal LPC_SC->PLL0CON=0X00; // Disable PLL0 LPC_SC->PLL0FEED=0x000000AA;// Baad az taghire PLL0CON ya PLLCFG LPC_SC->PLL0FEED=0x00000055;// Baad az taghire PLL0CON ya PLLCFG while(!(LPC_SC->SCS&0x40)); // Wait Ta Osilator Paydar Beshee LPC_SC->CLKSRCSEL=0x01; // Manbaee CLK Be PLL motasel shavad LPC_SC->PLL0CFG=((n-1)<<16)|(m-1);// Meghdare M Va N Ra gharar midahim.{(Fin*2*M)/n} / D LPC_SC->PLL0FEED=0x000000AA;// Baad az taghire PLL0CON ya PLLCFG LPC_SC->PLL0FEED=0x00000055;// Baad az taghire PLL0CON ya PLLCFG LPC_SC->PLL0CON=0X01; // Enable PLL0 LPC_SC->PLL0FEED=0x000000AA;// Baad az taghire PLL0CON ya PLLCFG LPC_SC->PLL0FEED=0x00000055;// Baad az taghire PLL0CON ya PLLCFG LPC_SC->CCLKCFG=d;// Zarib Taghsim konande Freq PLL0 CPU CLK=100Mhz // LPC_SC->PCLKSEL1=0x00000004; //8; // GPIO=Freq CPU/2 = 50Mhz LPC_SC->PCLKSEL1|=1<<2;//Peripheral clock selection for GPIO interrupts. LPC_SC->PCLKSEL1|=0<<4;//Peripheral clock selection for the Pin Connect block. while((LPC_SC->PLL1STAT&0x04000000==0));// Wait Ta PLL roye Freq Ghofl beshee LPC_SC->PCON|=2;// Motasel shodan PLL be sayere Blok ha LPC_SC->PLL0FEED=0x000000AA;// Baad az taghire PLL0CON ya PLLCFG LPC_SC->PLL0FEED=0x00000055;// Baad az taghire PLL0CON ya PLLCFG */ //************************************************************************************** LPC_GPIO1->FIODIR=1; //Config pin P1.0 = OUTPUT LPC_PINCON->PINSEL2|=00; // Tanzim roye GPIO ==> defualt hamishee roye GPIO set hastand LPC_PINCON->PINMODE2|=0x03;// Pull Down P1.0 Enable while(1){ LPC_GPIO1->FIOSET=0x01; // for(i=00;i<720000;i++); LPC_GPIO1->FIOCLR=0x01; // for(i=00;i<720000;i++); };//while }//main[/left]
برنامه دوم : تنظیمات فرکانس میکرو هم اعمال شده
کد:
[left]#include "LPC17xx.h" int main(void) { //unsigned int i,a; //************************* Tanzim Freq CPU ****************************************** unsigned char m,n,d; m=100;//Multiplier value n=6;//Pre-Divider value d=3;//cpu div D=4-1=3 //Config LPC1768 Register LPC_SC->SCS=0x20;// Enable Crystal LPC_SC->PLL0CON=0X00; // Disable PLL0 LPC_SC->PLL0FEED=0x000000AA;// Baad az taghire PLL0CON ya PLLCFG LPC_SC->PLL0FEED=0x00000055;// Baad az taghire PLL0CON ya PLLCFG while(!(LPC_SC->SCS&0x40)); // Wait Ta Osilator Paydar Beshee LPC_SC->CLKSRCSEL=0x01; // Manbaee CLK Be PLL motasel shavad LPC_SC->PLL0CFG=((n-1)<<16)|(m-1);// Meghdare M Va N Ra gharar midahim.{(Fin*2*M)/n} / D LPC_SC->PLL0FEED=0x000000AA;// Baad az taghire PLL0CON ya PLLCFG LPC_SC->PLL0FEED=0x00000055;// Baad az taghire PLL0CON ya PLLCFG LPC_SC->PLL0CON=0X01; // Enable PLL0 LPC_SC->PLL0FEED=0x000000AA;// Baad az taghire PLL0CON ya PLLCFG LPC_SC->PLL0FEED=0x00000055;// Baad az taghire PLL0CON ya PLLCFG LPC_SC->CCLKCFG=d;// Zarib Taghsim konande Freq PLL0 CPU CLK=100Mhz // LPC_SC->PCLKSEL1=0x00000004; //8; // GPIO=Freq CPU/2 = 50Mhz LPC_SC->PCLKSEL1|=1<<2;//Peripheral clock selection for GPIO interrupts. LPC_SC->PCLKSEL1|=0<<4;//Peripheral clock selection for the Pin Connect block. while((LPC_SC->PLL1STAT&0x04000000==0));// Wait Ta PLL roye Freq Ghofl beshee LPC_SC->PCON|=2;// Motasel shodan PLL be sayere Blok ha LPC_SC->PLL0FEED=0x000000AA;// Baad az taghire PLL0CON ya PLLCFG LPC_SC->PLL0FEED=0x00000055;// Baad az taghire PLL0CON ya PLLCFG //************************************************************************************** LPC_GPIO1->FIODIR=1; //Config pin P1.0 = OUTPUT LPC_PINCON->PINSEL2|=00; // Tanzim roye GPIO ==> defualt hamishee roye GPIO set hastand LPC_PINCON->PINMODE2|=0x03;// Pull Down P1.0 Enable while(1){ LPC_GPIO1->FIOSET=0x01; // for(i=00;i<720000;i++); LPC_GPIO1->FIOCLR=0x01; // for(i=00;i<720000;i++); };//while }//main[/left]
مثل اینکه هر چقدر من با فرکانس و دستکاری میکنم تاثیری نداره
system_LPC17xx.c رو نگاه کردم ولی از تنظیمات فرکانسش چیزی سر در نیاوردم تا صبح باهاش ور رفتم :sad:
لطفا راهنماییم کنید
ممنون
دیدگاه