본문 바로가기

개발환경/Keil

(4)
ADC 설정 - NUC029SGE MCU는 NUC029SGE를 사용하였고 관련 데이터 시트는 아래 첨부했습니다. 코드 분석 1) CLK_EnableModuleClock(ADC_MODULE); ADC_MODULE 모듈의 Clock을 활성화시키겠다. 2) CLK_SetModuleClock(ADC_MODULE, CLK_CLKSEL1_ADCSEL_HIRC, CLK_CLKDIV0_ADC(7)); CLK_SetModuleClock(Module index, Clock source, Divider); ADC 모듈을 HIRC Clock source로 설정하고, clock divider는 7로 설정하겠다. 즉, 22.1184/7 MHz로 설정하겠다. 3) GPIO_DISABLE_DIGITAL_PATH(PB, (uint32_t)(BIT11)); 지정된 GP..
UART 설정 - NUC029SGE MCU는 NUC029SGE를 사용하였고 관련 데이터 시트는 아래 첨부했습니다. 코드 분석 SYS_ResetModule(UART0_RST); /* Enable UART module clock */ CLK_EnableModuleClock(UART0_MODULE); /* Select HXT as the clock source of UART0 */ CLK_SetModuleClock(UART0_MODULE, CLK_CLKSEL1_UARTSEL_HIRC, CLK_CLKDIV0_UART(1)); /* Set multi-function pins for UART0 RXD and TXD */ SYS->GPD_MFPL &= ~(SYS_GPD_MFPL_PD1MFP_Msk ); SYS->GPD_MFPL |= (SYS_GPD_M..
타이머 설정 - NUC029SGE MCU는 NUC029SGE를 사용하였고 관련 데이터 시트는 아래 첨부했습니다. 코드 분석 static void sSysTimer_Init(void) { /* Enable TIMER0 module clock */ CLK_EnableModuleClock(TMR0_MODULE); /* Select TIMER module clock source */ CLK_SetModuleClock(TMR0_MODULE, CLK_CLKSEL1_TMR0SEL_HIRC, MODULE_NoMsk); TIMER_Open(TIMER0, TIMER_PERIODIC_MODE, 1000); TIMER_EnableInt(TIMER0); /* Enable Timer0 NVIC */ NVIC_EnableIRQ(TMR0_IRQn); } 1) CLK..
Clock 설정 - NUC029SGE MCU는 NUC029SGE를 사용하였고 관련 데이터 시트는 아래 첨부했습니다. 코드 분석 static void sSysClk_Init(void) { //Unlock protected registers SYS_UnlockReg(); /*Disable clock source*/ CLK_DisableXtalRC(CLK_PWRCTL_HXTEN_Msk); if(!(CLK->STATUS & CLK_STATUS_HXTSTB_Msk)) { SYS->GPF_MFPL &= ~(SYS_GPF_MFPL_PF3MFP_Msk | SYS_GPF_MFPL_PF4MFP_Msk); SYS->GPF_MFPL |= (SYS_GPF_MFPL_PF3MFP_GPIO | SYS_GPF_MFPL_PF4MFP_GPIO); } /* Enable HIR..