Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: Hobbyking_Cheetah_Compact Hobbyking_Cheetah_Compact_DRV8323_14bit Hobbyking_Cheetah_Compact_DRV8323_V51_201907 HKC_MiniCheetah ... more
Fork of mbed-dev by
Diff: targets/TARGET_NORDIC/TARGET_NRF5/spi_api.c
- Revision:
- 150:02e0a0aed4ec
- Parent:
- 149:156823d33999
- Child:
- 160:d5399cc887bb
--- a/targets/TARGET_NORDIC/TARGET_NRF5/spi_api.c Fri Oct 28 11:17:30 2016 +0100
+++ b/targets/TARGET_NORDIC/TARGET_NRF5/spi_api.c Tue Nov 08 17:45:16 2016 +0000
@@ -85,25 +85,52 @@
nrf_drv_spi_t master;
nrf_drv_spis_t slave;
} sdk_driver_instances_t;
+
+void SPI0_TWI0_IRQHandler(void);
+void SPI1_TWI1_IRQHandler(void);
+void SPIM2_SPIS2_SPI2_IRQHandler(void);
+
+static const peripheral_handler_desc_t spi_hanlder_desc[SPI_COUNT] = {
+#if SPI0_ENABLED
+ {
+ SPIS0_IRQ,
+ (uint32_t) SPI0_TWI0_IRQHandler
+ },
+#endif
+#if SPI1_ENABLED
+ {
+ SPIS1_IRQ,
+ (uint32_t) SPI1_TWI1_IRQHandler
+ },
+#endif
+#if SPI2_ENABLED
+ {
+ SPIS2_IRQ,
+ (uint32_t) SPIM2_SPIS2_SPI2_IRQHandler
+ },
+#endif
+};
+
+
static sdk_driver_instances_t m_instances[SPI_COUNT] = {
- #if SPI0_ENABLED
+#if SPI0_ENABLED
{
NRF_DRV_SPI_INSTANCE(0),
NRF_DRV_SPIS_INSTANCE(0)
},
- #endif
- #if SPI1_ENABLED
+#endif
+#if SPI1_ENABLED
{
NRF_DRV_SPI_INSTANCE(1),
NRF_DRV_SPIS_INSTANCE(1)
},
- #endif
- #if SPI2_ENABLED
+#endif
+#if SPI2_ENABLED
{
NRF_DRV_SPI_INSTANCE(2),
NRF_DRV_SPIS_INSTANCE(2)
},
- #endif
+#endif
};
static void master_event_handler(uint8_t spi_idx,
@@ -201,7 +228,7 @@
p_config->frequency = p_spi_info->frequency;
p_config->mode = (nrf_drv_spi_mode_t)p_spi_info->spi_mode;
- p_config->irq_priority = APP_IRQ_PRIORITY_LOW;
+ p_config->irq_priority = SPI1_CONFIG_IRQ_PRIORITY;
p_config->orc = 0xFF;
p_config->bit_order = NRF_DRV_SPI_BIT_ORDER_MSB_FIRST;
}
@@ -215,7 +242,7 @@
p_config->csn_pin = p_spi_info->ss_pin;
p_config->mode = (nrf_drv_spis_mode_t)p_spi_info->spi_mode;
- p_config->irq_priority = APP_IRQ_PRIORITY_LOW;
+ p_config->irq_priority = SPIS1_CONFIG_IRQ_PRIORITY;
p_config->orc = NRF_DRV_SPIS_DEFAULT_ORC;
p_config->def = NRF_DRV_SPIS_DEFAULT_DEF;
p_config->bit_order = NRF_DRV_SPIS_BIT_ORDER_MSB_FIRST;
@@ -230,6 +257,9 @@
for (i = 0; i < SPI_COUNT; ++i) {
spi_info_t *p_spi_info = &m_spi_info[i];
if (!p_spi_info->initialized) {
+
+ NVIC_SetVector(spi_hanlder_desc[i].IRQn, spi_hanlder_desc[i].vector);
+
p_spi_info->sck_pin = (uint8_t)sclk;
p_spi_info->mosi_pin = (mosi != NC) ?
(uint8_t)mosi : NRF_DRV_SPI_PIN_NOT_USED;
