#include "NUC100.h"
uint32_t gExtClock = 12000000;
unsigned char temp;
int main(void)
{
writew(0x50000100, 0x59); // un-lock sequency 1
writew(0x50000100, 0x16); // un-lock sequency 2
writew(0x50000100, 0x88); // un-lock sequency 3
writew(PWRCON, readw(PWRCON)|1); // enable the 12MHz oscillator oscillation
writew(0x50000100, 0x00); // re-lock
writew(0x50000100, 0x59); // un-lock sequency 1
writew(0x50000100, 0x16); // un-lock sequency 2
writew(0x50000100, 0x88); // un-lock sequency 3
writew(CLKSEL0, readw(CLKSEL0)&0xFFFFFFF8); // HCLK clock source: external 12MHz
writew(0x50000100, 0x00); // re-lock
//************************
//**INITIAL PWM
//************************
//INITIAL PWM CLK
SYSCLK->APBCLK.PWM01_EN = 1;
/* Reset PWM */
SYS->IPRST1.PWM_RST = 1;
SYS->IPRST1.PWM_RST = 0;
/* Select clock source */
SYSCLK->CLKSEL1.PWM01_S = 0; /* Use external 12Mhz */
/* Multi-funciton pin */
SYS->GPAMFP.PWM0 = 1;
PWM->PPR.CP0 = 1;
PWM->PPR.CP1 = 1;
PWM->CSR.CSR0 = 4;
PWM->PCR.CH0MOD = 1; /* Auto-reload */
PWM->PCR.CH0EN = 1;
PWM->CNR0 = (gExtClock/2) / 15671; /* Freq = 4000 Hz */
PWM->CMR0 = PWM->CNR0-(PWM->CNR0 / 4); /* duty-cycle = 50 % */
PWM->POE = 1;
while(1);
}
}
|