/*! * \file main.c * * \brief Target main implementation * * \copyright Revised BSD License, see section \ref LICENSE. * * \code * * _ __ _ ________ _ * | |/ /(_)___ / ____/ /_ (_)___ * | // / __ \/ / / __ \/ / __ \ * / |/ / / / / /___/ / / / / /_/ / * /_/|_/_/_/ /_/\____/_/ /_/_/ .___/ * /_/ * (C) 2022-2025 XinChip * * \endcode * * \author ( XinChip ) Alex-J * * \author ( XinChip ) */ /*----------------------------------------------------------------------------------- INCLUDE HEADE FILES ------------------------------------------------------------------------------------*/ #include "xc6xxx.h" #include "usbd_core.h" #include "usb_device.h" #include "usbd_msc.h" /*------------------------------------------------------------------------------------ Global Variables -------------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------------ Functions -------------------------------------------------------------------------------------*/ void SysTick_Callback(void) { } void clock_init(void) { CLOCK_InitCfg_t clock_cfg; clock_cfg.hfclk_src = CLOCK_HFCLK_SRC_XTAL; clock_cfg.hfclk_in = CLOCK_HFCLK_IN_48M; clock_cfg.lfclk_src = CLOCK_LFCLK_SRC_RC; if (clock_cfg.lfclk_src == CLOCK_LFCLK_SRC_XTAL) { clock_cfg.lfclk_in = CLOCK_LFCLK_IN_32768; } else if (clock_cfg.lfclk_src == CLOCK_LFCLK_SRC_RC) { clock_cfg.lfclk_in = CLOCK_LFCLK_IN_32K; } xc_clock_init_cfg(&clock_cfg); SysTick_Config(xc_clock_hfclk_in_get() / 100); SysTick->CTRL &= ~SysTick_CTRL_TICKINT_Msk; } void app_uart_init(void) { GPIO_InitCfg_t gpio_cfg = {0}; gpio_cfg.Mux = GPIO_Mux0; gpio_cfg.Pull = GPIO_PULLUP; gpio_cfg.Int = NOT_INT; gpio_cfg.FunSel = UART0_TX; gpio_cfg.Pin = GPIO_18; gpio_cfg.Dir = GPIO_DIR_OUTPUT; xc_gpio_init(&gpio_cfg); gpio_cfg.FunSel = UART0_RX; gpio_cfg.Pin = GPIO_19; gpio_cfg.Dir = GPIO_DIR_INPUT; xc_gpio_init(&gpio_cfg); UART_InitCfg_t uart_cfg = {0}; uart_cfg.Parity = UART_PARITY_DISABLE; uart_cfg.StopBits = UART_STOP_1_BITS; uart_cfg.WordLength = UART_DATA_8_BITS; uart_cfg.BaudRate = UART_BAUDRATE_115200; uart_cfg.HardwareFlowControl = UART_HWFC_DISABLE; xc_uart_init(UART0_IDX, &uart_cfg); } int main(void) { clock_init( ); app_uart_init( ); DEBUG("__USB_MSC_DEMO__\n"); /* USB Device Initialization */ USB_DEVICE_Init( ); while(1) { } }