/*---------------------------------------------------------------------------*/ void cc1200_arch_init(void) { /* First leave RESET high */ GPIO_SOFTWARE_CONTROL(CC1200_RESET_PORT_BASE, CC1200_RESET_PIN_MASK); GPIO_SET_OUTPUT(CC1200_RESET_PORT_BASE, CC1200_RESET_PIN_MASK); ioc_set_over(CC1200_RESET_PORT, CC1200_RESET_PIN, IOC_OVERRIDE_OE); GPIO_SET_PIN(CC1200_RESET_PORT_BASE, CC1200_RESET_PIN_MASK); /* Initialize CSn, enable CSn and then wait for MISO to go low*/ spix_cs_init(CC1200_SPI_CSN_PORT, CC1200_SPI_CSN_PIN); /* Initialize SPI */ spix_init(CC1200_SPI_INSTANCE); /* Configure GPIOx */ GPIO_SOFTWARE_CONTROL(CC1200_GDO0_PORT_BASE, CC1200_GDO0_PIN_MASK); GPIO_SET_INPUT(CC1200_GDO0_PORT_BASE, CC1200_GDO0_PIN_MASK); GPIO_SOFTWARE_CONTROL(CC1200_GDO2_PORT_BASE, CC1200_GDO2_PIN_MASK); GPIO_SET_INPUT(CC1200_GDO2_PORT_BASE, CC1200_GDO2_PIN_MASK); /* Leave CSn as default */ cc1200_arch_spi_deselect(); /* Ensure MISO is high */ BUSYWAIT_UNTIL( GPIO_READ_PIN(CC1200_SPI_MISO_PORT_BASE, CC1200_SPI_MISO_PIN_MASK), RTIMER_SECOND / 10); }
void rv3049_init() { /* Set the HOLD_N and WP_N pins to outputs and high */ GPIO_SET_INPUT(GPIO_PORT_TO_BASE(RV3049_INT_N_PORT_NUM), GPIO_PIN_MASK(RV3049_INT_N_PIN)); spix_cs_init(RV3049_CS_PORT_NUM, RV3049_CS_PIN); SPI_CS_CLR(RV3049_CS_PORT_NUM, RV3049_CS_PIN); // Write the initial values { rv3049_time_t start_time = {RTC_SECONDS, RTC_MINUTES, RTC_HOURS, RTC_DAYS, RTC_WEEKDAY, RTC_MONTH, RTC_YEAR}; rv3049_set_time(&start_time); } }