سلام به همه
من یه برنامه ساده نوشتم که پورت 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:
لطفا راهنماییم کنید
ممنون


دیدگاه