1
0
forked from me/IronOS

Faster I2C BB | slow down ADC

This commit is contained in:
Ben V. Brown
2021-04-27 19:09:29 +10:00
parent a05e99b3a6
commit c9ad627e31
4 changed files with 47 additions and 24 deletions

View File

@@ -4,31 +4,39 @@
#include "cmsis_os.h"
#include "stm32f1xx.h"
#include "stm32f1xx_hal.h"
#include "Pins.h"
extern TIM_HandleTypeDef htim1; // used for the systick
/******************************************************************************/
/* Cortex-M3 Processor Interruption and Exception Handlers */
/******************************************************************************/
void NMI_Handler(void) {}
void NMI_Handler(void) {
}
// We have the assembly for a breakpoint trigger here to halt the system when a debugger is connected
// Hardfault handler, often a screwup in the code
void HardFault_Handler(void) {}
void HardFault_Handler(void) {
}
// Memory management unit had an error
void MemManage_Handler(void) {}
void MemManage_Handler(void) {
}
// Prefetcher or busfault occured
void BusFault_Handler(void) {}
void BusFault_Handler(void) {
}
void UsageFault_Handler(void) {}
void UsageFault_Handler(void) {
}
void DebugMon_Handler(void) {}
void DebugMon_Handler(void) {
}
// Systick is used by FreeRTOS tick
void SysTick_Handler(void) { osSystickHandler(); }
void SysTick_Handler(void) {
osSystickHandler();
}
/******************************************************************************/
/* STM32F1xx Peripheral Interrupt Handlers */
@@ -38,18 +46,33 @@ void SysTick_Handler(void) { osSystickHandler(); }
/******************************************************************************/
// DMA used to move the ADC readings into system ram
void DMA1_Channel1_IRQHandler(void) { HAL_DMA_IRQHandler(&hdma_adc1); }
void DMA1_Channel1_IRQHandler(void) {
HAL_DMA_IRQHandler(&hdma_adc1);
}
// ADC interrupt used for DMA
void ADC1_2_IRQHandler(void) { HAL_ADC_IRQHandler(&hadc1); }
void ADC1_2_IRQHandler(void) {
HAL_ADC_IRQHandler(&hadc1);
}
// Timer 1 has overflowed, used for HAL ticks
void TIM1_UP_IRQHandler(void) { HAL_TIM_IRQHandler(&htim1); }
void TIM1_UP_IRQHandler(void) {
HAL_TIM_IRQHandler(&htim1);
}
void I2C1_EV_IRQHandler(void) {
HAL_I2C_EV_IRQHandler(&hi2c1);
}
void I2C1_ER_IRQHandler(void) {
HAL_I2C_ER_IRQHandler(&hi2c1);
}
void I2C1_EV_IRQHandler(void) { HAL_I2C_EV_IRQHandler(&hi2c1); }
void I2C1_ER_IRQHandler(void) { HAL_I2C_ER_IRQHandler(&hi2c1); }
void DMA1_Channel6_IRQHandler(void) {
HAL_DMA_IRQHandler(&hdma_i2c1_tx);
}
void DMA1_Channel6_IRQHandler(void) { HAL_DMA_IRQHandler(&hdma_i2c1_tx); }
void DMA1_Channel7_IRQHandler(void) { HAL_DMA_IRQHandler(&hdma_i2c1_rx); }
void EXTI9_5_IRQHandler(void) { HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_9); }
void DMA1_Channel7_IRQHandler(void) {
HAL_DMA_IRQHandler(&hdma_i2c1_rx);
}
void EXTI9_5_IRQHandler(void) {
HAL_GPIO_EXTI_IRQHandler(INT_PD_Pin);
}