Пример #1
0
/* Return main A clock rate */
uint32_t Chip_Clock_GetMain_A_ClockRate(void)
{
	uint32_t clkRate = 0;

	switch (Chip_Clock_GetMain_A_ClockSource()) {
	case SYSCON_MAIN_A_CLKSRC_FRO12MHZ:
		clkRate = SYSCON_FRO12MHZ_FREQ;
		break;

	case SYSCON_MAIN_A_CLKSRCA_CLKIN:
		clkRate = Chip_Clock_GetExtClockInRate();
		break;

	case SYSCON_MAIN_A_CLKSRCA_WDTOSC:
		clkRate = Chip_Clock_GetWDTOSCRate();
		break;

	case SYSCON_MAIN_A_CLKSRCA_FROHF:
		clkRate = Chip_Clock_GetFROHFRate();
		break;

	default:
		clkRate = 0;
		break;
	}

	return clkRate;
}
Пример #2
0
/**
 * @brief	Application main function
 * @return	Does not return
 */
int main(void)
{
	/* Board Initialization */
	SystemCoreClockUpdate();
	Board_Init();

	/* Clock enables and checks */
	if (CLKOUT_SEL == SYSCON_CLKOUTSRC_RTC) {
		/* Turn on the RTC 32K Oscillator */
		Chip_SYSCON_PowerUp(SYSCON_PDRUNCFG_PD_32K_OSC);
		Chip_Clock_EnableRTCOsc();
	}
	else if (CLKOUT_SEL == SYSCON_CLKOUTSRC_WDTOSC) {
		/* Enable the power to the WDT Oscillator */
		Chip_SYSCON_PowerUp(SYSCON_PDRUNCFG_PD_WDT_OSC);
	}
	else if (CLKOUT_SEL == SYSCON_CLKOUTSRC_CLKIN) {
		/* Setup CLKIN via IOCON (pin muxing) */
		Chip_IOCON_PinMuxSet(LPC_IOCON, 0, 22,
							 (IOCON_FUNC1 | IOCON_MODE_INACT | IOCON_DIGITAL_EN));
		if (Chip_Clock_GetExtClockInRate() == 0) {
			/* Can't continue, stop! */
			DEBUGSTR("CLKIN selected for CLKOUT, but CLKIN rate is 0\r\n");
			while (1) {}
		}
	}

	/* Map P0.21 as CLKOUT pin */
	Chip_IOCON_PinMuxSet(LPC_IOCON, 0, 21,
						 (IOCON_FUNC1 | IOCON_MODE_INACT | IOCON_DIGITAL_EN));

	/* There isn't too much to this example */
	Chip_Clock_SetCLKOUTSource(CLKOUT_SEL, CLKOUT_DIV);

	return 0;
}