keil startup.s dosyası

Başlatan armsistem, 18 Kasım 2011, 18:45:15

armsistem

Arkadaşlar merhaba , startup dosyası içerisinde Configration Wizard girip PLL Configration Register m veya n değerlerini verebiliyoruz , aynı şekilde  aşağıda da değerleri ayarlayabiliyorum , merak ettiğim nokta şu hangisi aktif oluyor , config. wiza. takimi yoksa yazılımsal olarak aşağıda verdiğim ,



#ifndef __TARGET_H 
#define __TARGET_H
#ifdef __cplusplus
   extern "C" {
#endif
#define KEIL_BOARD_LPC23XX				1
#define EA_BOARD_LPC24XX				0
#define	USE_USB					1
#ifndef TRUE
#define TRUE  1
#endif
#ifndef FALSE
#define FALSE 0
#endif
#define PLL_MValue			8
#define PLL_NValue			0
#define CCLKDivValue		3
#define USBCLKDivValue		5
#define Fosc   	16000000
#define Fcclk   72000000
#define Fcco   288000000
#define Fpclk	(Fcclk / 8)
extern void TargetInit(void);
extern void ConfigurePLL( void );
extern void TargetResetInit(void);

#ifdef __cplusplus
   }
#endif
 
#endif

armsistem

void ConfigurePLL ( void )
{
	DWORD MValue, NValue;

	if ( PLLSTAT & (1 << 25) )
    {
		PLLCON = 1;			/* Enable PLL, disconnected */
		PLLFEED = 0xaa;
		PLLFEED = 0x55;
    }

    PLLCON = 0;				/* Disable PLL, disconnected */
    PLLFEED = 0xaa;
    PLLFEED = 0x55;
    
	SCS |= 0x20;			/* Enable main OSC */
    while( !(SCS & 0x40) );	/* Wait until main OSC is usable */

    CLKSRCSEL = 0x1;		/* select main OSC, 12MHz, as the PLL clock source */

    PLLCFG = PLL_MValue | (PLL_NValue << 16);
    PLLFEED = 0xaa;
    PLLFEED = 0x55;
      
    PLLCON = 1;				/* Enable PLL, disconnected */
    PLLFEED = 0xaa;
    PLLFEED = 0x55;

    CCLKCFG = CCLKDivValue;	/* Set clock divider */
#if USE_USB
    USBCLKCFG = USBCLKDivValue;		/* usbclk = 288 MHz/6 = 48 MHz */
#endif

    while ( ((PLLSTAT & (1 << 26)) == 0) );	/* Check lock bit status */
    
    MValue = PLLSTAT & 0x00007FFF;
    NValue = (PLLSTAT & 0x00FF0000) >> 16;
    while ((MValue != PLL_MValue) && ( NValue != PLL_NValue) );

    PLLCON = 3;				/* enable and connect */
    PLLFEED = 0xaa;
    PLLFEED = 0x55;
	while ( ((PLLSTAT & (1 << 25)) == 0) );	/* Check connect bit status */
	return;
}

armsistem

Selam , main bloğunun içinde çağrılıyor.

armsistem

sağolasın dostum yanıt için , yalnız datasheet vs. hiç bir yerde bulamadım bu yazdığını böyle şeyleri okuyarak öğrenemezmiyim illede forumda mı sormam gerekiyor ?