Change TimMasterHandle variable declaration + typo corrections

pull/3213/head
bcostm 2016-11-02 17:06:31 +01:00
parent cc24e5b7f9
commit f8e18cdde4
4 changed files with 24 additions and 35 deletions

View File

@ -32,11 +32,7 @@
#define DEBUG_TICK 0 // Set to 1 to toggle a pin (see below which pin) at each tick #define DEBUG_TICK 0 // Set to 1 to toggle a pin (see below which pin) at each tick
TIM_HandleTypeDef TimMasterHandle; extern TIM_HandleTypeDef TimMasterHandle;
volatile uint32_t PreviousVal = 0;
void us_ticker_irq_handler(void);
void set_compare(uint16_t count);
extern volatile uint32_t SlaveCounter; extern volatile uint32_t SlaveCounter;
extern volatile uint32_t oc_int_part; extern volatile uint32_t oc_int_part;
@ -44,6 +40,11 @@ extern volatile uint16_t oc_rem_part;
extern volatile uint8_t tim_it_update; extern volatile uint8_t tim_it_update;
extern volatile uint32_t tim_it_counter; extern volatile uint32_t tim_it_counter;
volatile uint32_t PreviousVal = 0;
void us_ticker_irq_handler(void);
void set_compare(uint16_t count);
#if defined(TARGET_STM32F0) #if defined(TARGET_STM32F0)
void timer_update_irq_handler(void) { void timer_update_irq_handler(void) {
#else #else
@ -65,8 +66,7 @@ void timer_irq_handler(void) {
#if defined(TARGET_STM32F0) #if defined(TARGET_STM32F0)
} // end timer_update_irq_handler function } // end timer_update_irq_handler function
// Used for mbed timeout (channel 1) and HAL tick (channel 2) // Used for mbed timeout (channel 1) and HAL tick (channel 2)
void timer_oc_irq_handler(void) void timer_oc_irq_handler(void) {
{
uint16_t cnt_val = TIM_MST->CNT; uint16_t cnt_val = TIM_MST->CNT;
TimMasterHandle.Instance = TIM_MST; TimMasterHandle.Instance = TIM_MST;
#endif #endif
@ -173,18 +173,14 @@ HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) {
return HAL_OK; return HAL_OK;
} }
void HAL_SuspendTick(void) void HAL_SuspendTick(void) {
{
TimMasterHandle.Instance = TIM_MST; TimMasterHandle.Instance = TIM_MST;
// Disable HAL tick and us_ticker update interrupts (used for 32 bit counter) // Disable HAL tick and us_ticker update interrupts (used for 32 bit counter)
__HAL_TIM_DISABLE_IT(&TimMasterHandle, (TIM_IT_CC2 | TIM_IT_UPDATE)); __HAL_TIM_DISABLE_IT(&TimMasterHandle, (TIM_IT_CC2 | TIM_IT_UPDATE));
} }
void HAL_ResumeTick(void) void HAL_ResumeTick(void) {
{
TimMasterHandle.Instance = TIM_MST; TimMasterHandle.Instance = TIM_MST;
// Enable HAL tick and us_ticker update interrupts (used for 32 bit counter) // Enable HAL tick and us_ticker update interrupts (used for 32 bit counter)
__HAL_TIM_ENABLE_IT(&TimMasterHandle, (TIM_IT_CC2 | TIM_IT_UPDATE)); __HAL_TIM_ENABLE_IT(&TimMasterHandle, (TIM_IT_CC2 | TIM_IT_UPDATE));
} }

View File

@ -32,7 +32,8 @@
#define DEBUG_TICK 0 // Set to 1 to toggle a pin (see below which pin) at each tick #define DEBUG_TICK 0 // Set to 1 to toggle a pin (see below which pin) at each tick
TIM_HandleTypeDef TimMasterHandle; extern TIM_HandleTypeDef TimMasterHandle;
volatile uint32_t PreviousVal = 0; volatile uint32_t PreviousVal = 0;
void us_ticker_irq_handler(void); void us_ticker_irq_handler(void);
@ -136,18 +137,14 @@ HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) {
return HAL_OK; return HAL_OK;
} }
void HAL_SuspendTick(void) void HAL_SuspendTick(void) {
{
TimMasterHandle.Instance = TIM_MST; TimMasterHandle.Instance = TIM_MST;
// Disable HAL tick and us_ticker update interrupts (used for 32 bit counter) // Disable HAL tick and us_ticker update interrupts (used for 32 bit counter)
__HAL_TIM_DISABLE_IT(&TimMasterHandle, (TIM_IT_CC2 | TIM_IT_UPDATE)); __HAL_TIM_DISABLE_IT(&TimMasterHandle, (TIM_IT_CC2 | TIM_IT_UPDATE));
} }
void HAL_ResumeTick(void) void HAL_ResumeTick(void) {
{
TimMasterHandle.Instance = TIM_MST; TimMasterHandle.Instance = TIM_MST;
// Enable HAL tick and us_ticker update interrupts (used for 32 bit counter) // Enable HAL tick and us_ticker update interrupts (used for 32 bit counter)
__HAL_TIM_ENABLE_IT(&TimMasterHandle, (TIM_IT_CC2 | TIM_IT_UPDATE)); __HAL_TIM_ENABLE_IT(&TimMasterHandle, (TIM_IT_CC2 | TIM_IT_UPDATE));
} }

View File

@ -33,8 +33,7 @@
// A 16-bit timer is used // A 16-bit timer is used
#if TIM_MST_16BIT #if TIM_MST_16BIT
static TIM_HandleTypeDef TimMasterHandle; TIM_HandleTypeDef TimMasterHandle;
static int us_ticker_inited = 0;
volatile uint32_t SlaveCounter = 0; volatile uint32_t SlaveCounter = 0;
volatile uint32_t oc_int_part = 0; volatile uint32_t oc_int_part = 0;
@ -42,8 +41,9 @@ volatile uint16_t oc_rem_part = 0;
volatile uint8_t tim_it_update; // TIM_IT_UPDATE event flag set in timer_irq_handler() volatile uint8_t tim_it_update; // TIM_IT_UPDATE event flag set in timer_irq_handler()
volatile uint32_t tim_it_counter = 0; // Time stamp to be updated by timer_irq_handler() volatile uint32_t tim_it_counter = 0; // Time stamp to be updated by timer_irq_handler()
void set_compare(uint16_t count) static int us_ticker_inited = 0;
{
void set_compare(uint16_t count) {
TimMasterHandle.Instance = TIM_MST; TimMasterHandle.Instance = TIM_MST;
// Set new output compare value // Set new output compare value
__HAL_TIM_SetCompare(&TimMasterHandle, TIM_CHANNEL_1, count); __HAL_TIM_SetCompare(&TimMasterHandle, TIM_CHANNEL_1, count);
@ -51,8 +51,7 @@ void set_compare(uint16_t count)
__HAL_TIM_ENABLE_IT(&TimMasterHandle, TIM_IT_CC1); __HAL_TIM_ENABLE_IT(&TimMasterHandle, TIM_IT_CC1);
} }
void us_ticker_init(void) void us_ticker_init(void) {
{
if (us_ticker_inited) return; if (us_ticker_inited) return;
us_ticker_inited = 1; us_ticker_inited = 1;
@ -61,8 +60,7 @@ void us_ticker_init(void)
HAL_InitTick(0); // The passed value is not used HAL_InitTick(0); // The passed value is not used
} }
uint32_t us_ticker_read() uint32_t us_ticker_read() {
{
uint32_t counter; uint32_t counter;
TimMasterHandle.Instance = TIM_MST; TimMasterHandle.Instance = TIM_MST;
@ -106,8 +104,7 @@ uint32_t us_ticker_read()
} }
} }
void us_ticker_set_interrupt(timestamp_t timestamp) void us_ticker_set_interrupt(timestamp_t timestamp) {
{
int delta = (int)((uint32_t)timestamp - us_ticker_read()); int delta = (int)((uint32_t)timestamp - us_ticker_read());
uint16_t cval = TIM_MST->CNT; uint16_t cval = TIM_MST->CNT;
@ -127,14 +124,12 @@ void us_ticker_set_interrupt(timestamp_t timestamp)
} }
} }
void us_ticker_disable_interrupt(void) void us_ticker_disable_interrupt(void) {
{
TimMasterHandle.Instance = TIM_MST; TimMasterHandle.Instance = TIM_MST;
__HAL_TIM_DISABLE_IT(&TimMasterHandle, TIM_IT_CC1); __HAL_TIM_DISABLE_IT(&TimMasterHandle, TIM_IT_CC1);
} }
void us_ticker_clear_interrupt(void) void us_ticker_clear_interrupt(void) {
{
TimMasterHandle.Instance = TIM_MST; TimMasterHandle.Instance = TIM_MST;
if (__HAL_TIM_GET_FLAG(&TimMasterHandle, TIM_FLAG_CC1) == SET) { if (__HAL_TIM_GET_FLAG(&TimMasterHandle, TIM_FLAG_CC1) == SET) {
__HAL_TIM_CLEAR_FLAG(&TimMasterHandle, TIM_FLAG_CC1); __HAL_TIM_CLEAR_FLAG(&TimMasterHandle, TIM_FLAG_CC1);

View File

@ -33,7 +33,8 @@
// A 32-bit timer is used // A 32-bit timer is used
#if !TIM_MST_16BIT #if !TIM_MST_16BIT
static TIM_HandleTypeDef TimMasterHandle; TIM_HandleTypeDef TimMasterHandle;
static int us_ticker_inited = 0; static int us_ticker_inited = 0;
void us_ticker_init(void) { void us_ticker_init(void) {