Добавлено API для UART и TMR
This commit is contained in:
63
Core/App/tmr.h
Normal file
63
Core/App/tmr.h
Normal file
@@ -0,0 +1,63 @@
|
||||
/*==============================================================================
|
||||
* Инициализация таймеров с использованием бибилотеки PLIB035
|
||||
*------------------------------------------------------------------------------
|
||||
* ЦНИИ СЭТ, Разваляев Алексей <wot890089@mail.ru>
|
||||
*==============================================================================
|
||||
* ЦНИИ СЭТ
|
||||
*==============================================================================
|
||||
*/
|
||||
#ifndef __TMR_H
|
||||
#define __TMR_H
|
||||
//-- Includes ------------------------------------------------------------------
|
||||
#include "plib035.h"
|
||||
#include "retarget_conf.h"
|
||||
|
||||
//-- Defines -------------------------------------------------------------------
|
||||
// Дефайны для режима таймера Период в мкс, Частота, ПсевдоПрескалер, Период в тиках
|
||||
#define PERIOD_MKS(_per_) _per_, 0, 0, 0
|
||||
#define FREQ_HZ(_freq_) 0, _freq_, 0, 0
|
||||
#define LOAD(_load_, _presc_) 0, 0, _presc_, _load_
|
||||
|
||||
typedef struct
|
||||
{
|
||||
float ClkFreq; /*!< Частота тактирования таймера в МГц */
|
||||
|
||||
uint32_t PeriodUs; /*!< Период таймера в мкс */
|
||||
uint32_t FreqHz; /*!< Частота таймера в Гц */
|
||||
uint32_t Prescaler; /*!< Псевдопрескалер частоты */
|
||||
uint32_t Load; /*!< Период таймера в тиках */
|
||||
|
||||
FunctionalState IT; /*!< Разрешение работы прерывания */
|
||||
FunctionalState ADCSOC; /*!< Разрешение генерации сигналов запуска АЦП */
|
||||
FunctionalState DMAReq; /*!< Разрешение генерации запросов к DMA */
|
||||
TMR_ExtInput_TypeDef ExtInput; /*!< Настройка внешнего тактирования таймера */
|
||||
void (*Callback)(void); /* Коллбек который вызовется по прерыванию таймера */
|
||||
}TMR_Init_TypeDef;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
TMR_TypeDef *TMR;
|
||||
TMR_Init_TypeDef *Config;
|
||||
}TMR_HandleTypeDef;
|
||||
|
||||
extern TMR_HandleTypeDef htmr0;
|
||||
extern TMR_HandleTypeDef htmr1;
|
||||
extern TMR_HandleTypeDef htmr2;
|
||||
extern TMR_HandleTypeDef htmr3;
|
||||
|
||||
//-- Exported functions prototypes ---------------------------------------------
|
||||
void tmr_init_first(void);
|
||||
|
||||
OperationStatus tmr_init(TMR_HandleTypeDef *htmr, TMR_Init_TypeDef *NewConfig);
|
||||
OperationStatus tmr_set_callback(TMR_HandleTypeDef* htmr, int cb_type, void (*Callback)(void));
|
||||
|
||||
OperationStatus tmr_start(TMR_HandleTypeDef *htmr);
|
||||
OperationStatus tmr_stop(TMR_HandleTypeDef *htmr);
|
||||
OperationStatus tmr_delay(TMR_HandleTypeDef *htmr, uint32_t delay);
|
||||
OperationStatus tmr_delay_start(TMR_HandleTypeDef *htmr, uint32_t *var);
|
||||
int tmr_delay_done(TMR_HandleTypeDef *htmr, uint32_t delay, uint32_t *var);
|
||||
|
||||
|
||||
void tmr_handler(TMR_HandleTypeDef* htmr);
|
||||
void TMR_Init(TMR_TypeDef* TMRx, TMR_Init_TypeDef* InitStruct);
|
||||
#endif /*__TMR_H*/
|
||||
Reference in New Issue
Block a user