void Init_Ext_Mem() { // Initialize SPI SPI2_Init_Advanced(_SPI_MASTER, _SPI_8_BIT, 64, _SPI_SS_DISABLE, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_HIGH, _SPI_ACTIVE_2_IDLE); Delay_ms(10); // Initialize MMC if (!Mmc_Fat_Init()) { // Reinitialize SPI at higher speed SPI2_Init_Advanced(_SPI_MASTER, _SPI_8_BIT, 4, _SPI_SS_DISABLE, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_HIGH, _SPI_ACTIVE_2_IDLE); // Open resource file for read Mmc_Fat_Assign("CozyFire.RES", 0); Mmc_Fat_Reset(&res_file_size); } }
static void radio_bus_init() { status = RF_IDLE; SPI2_Init_Advanced( _SPI_FPCLK_DIV64, _SPI_MASTER | _SPI_8_BIT | _SPI_CLK_IDLE_LOW | _SPI_FIRST_CLK_EDGE_TRANSITION | _SPI_MSB_FIRST | _SPI_SS_DISABLE | _SPI_SSM_ENABLE | _SPI_SSI_1, &_GPIO_MODULE_SPI2_PB13_14_15 ); GPIO_Digital_Output( &GPIOG_BASE, _GPIO_PINMASK_12 | _GPIO_PINMASK_9 ); GPIO_Digital_Input( &GPIOG_BASE, _GPIO_PINMASK_10 ); // Set input for IRQ // Enable clock for alternate pin functions RCC_APB2ENR |= ( 1 << RCC_APB2ENR ); //SYSCFGEN_bit = 1; // Map external interrupt on PG10 SYSCFG_EXTICR3 |= ( 1 << EXTI81 ) | ( 1 << EXTI82 ); EXTI_RTSR &= ~( 1 << TR10 ); // Set interrupt on Rising edge (none) EXTI_FTSR |= ( 1 << TR10 ); // Set Interrupt on Falling edge (PG10) EXTI_IMR |= ( 1 << MR10 ); // Set mask NVIC_IntEnable( IVT_INT_EXTI15_10 ); // Enable External interrupt bus_initialized = true; // Note: Radio - By default all IRQ sources are enabled. }
void Init_Ext_Mem() { // Initialize SPI SPI2_Init_Advanced(_SPI_MASTER, _SPI_8_BIT, _SPI_PRESCALE_SEC_1, _SPI_PRESCALE_PRI_64, _SPI_SS_DISABLE, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_LOW, _SPI_IDLE_2_ACTIVE); Delay_ms(10); // Initialize MMC if (!Mmc_Fat_Init()) { // Reinitialize SPI at higher speed SPI2_Init_Advanced(_SPI_MASTER, _SPI_8_BIT, _SPI_PRESCALE_SEC_1, _SPI_PRESCALE_PRI_4, _SPI_SS_DISABLE, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_LOW, _SPI_IDLE_2_ACTIVE); // Open resource file for read Mmc_Fat_Assign("mmbInput.RES", 0); Mmc_Fat_Reset(&res_file_size); } }