Browse Source

update

master
zhaohe 2 years ago
parent
commit
4c25741fa7
  1. 17
      chip/basic/clock.cpp
  2. 11
      chip/chip.cpp
  3. 10
      chip/chip_tim_irq_shceduler.cpp
  4. 3
      chip/chip_tim_irq_shceduler.hpp

17
chip/basic/clock.cpp

@ -1,10 +1,25 @@
#include "clock.hpp" #include "clock.hpp"
#include "chip_helper.hpp"
extern "C" { extern "C" {
static zchip_tim_t* m_usdleaytim; static zchip_tim_t* m_usdleaytim;
uint32_t zchip_clock_init(zchip_clock_cfg_t* cfg) { uint32_t zchip_clock_init(zchip_clock_cfg_t* cfg) {
m_usdleaytim = cfg->usdleaytim; m_usdleaytim = cfg->usdleaytim;
uint32_t freq = chip_get_timer_clock_sorce_freq(cfg->usdleaytim);
uint32_t prescaler = freq / 1000000 - 1; // 1us
uint32_t autoreload = 65535;
HAL_TIM_Base_DeInit(cfg->usdleaytim);
cfg->usdleaytim->Init.Prescaler = prescaler;
cfg->usdleaytim->Init.CounterMode = TIM_COUNTERMODE_UP;
cfg->usdleaytim->Init.Period = autoreload;
cfg->usdleaytim->Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
HAL_TIM_Base_Init(cfg->usdleaytim);
return 0; return 0;
} }
// //
@ -36,6 +51,4 @@ void zchip_clock_early_delayus(uint32_t n) {
__zchip_clock_early_delayus(1000); __zchip_clock_early_delayus(1000);
} }
} }
} }

11
chip/chip.cpp

@ -3,14 +3,21 @@
extern "C" { extern "C" {
void chip_init(chip_cfg_t *cfg) { void chip_init(chip_cfg_t *cfg) {
// //
zchip_loggger_init(cfg->huart);
//
zchip_clock_cfg_t zchip_clock_cfg; zchip_clock_cfg_t zchip_clock_cfg;
zchip_clock_cfg.usdleaytim = cfg->us_dleay_tim; zchip_clock_cfg.usdleaytim = cfg->us_dleay_tim;
zchip_clock_init(&zchip_clock_cfg); zchip_clock_init(&zchip_clock_cfg);
// //
zchip_loggger_init(cfg->huart);
//
iflytop::ChipTimIrqShceduler::Cfg ChipTimIrqShceduler_cfg; iflytop::ChipTimIrqShceduler::Cfg ChipTimIrqShceduler_cfg;
ChipTimIrqShceduler_cfg.schedulertim = cfg->tim_irq_scheduler_tim; ChipTimIrqShceduler_cfg.schedulertim = cfg->tim_irq_scheduler_tim;
iflytop::ChipTimIrqShceduler::instance().initialize(&ChipTimIrqShceduler_cfg); iflytop::ChipTimIrqShceduler::instance().initialize(&ChipTimIrqShceduler_cfg);
ZLOGI("SYS", "chip init ok");
ZLOGI("SYS", "= manufacturer : %s", MANUFACTURER);
ZLOGI("SYS", "= project name : %s", PROJECT_NAME);
ZLOGI("SYS", "= version : %s", VERSION);
ZLOGI("SYS", "= freq : %d", HAL_RCC_GetSysClockFreq());
ZLOGI("SYS", "= build time : %s", __DATE__ " " __TIME__);
} }
} }

10
chip/chip_tim_irq_shceduler.cpp

@ -27,15 +27,19 @@ void ChipTimIrqShceduler::regPeriodJob(jobcb_t jobcb, uint32_t period_ms) {
*******************************************************************************/ *******************************************************************************/
void ChipTimIrqShceduler::simpleTimer_startByPeriod(uint32_t periodus) { simpleTimer_startByFreq(1000000.0 / periodus); } void ChipTimIrqShceduler::simpleTimer_startByPeriod(uint32_t periodus) { simpleTimer_startByFreq(1000000.0 / periodus); }
void ChipTimIrqShceduler::simpleTimer_startByFreq(float freq) { void ChipTimIrqShceduler::simpleTimer_startByFreq(float freq) {
ZASSERT(m_htim->Init.AutoReloadPreload == TIM_AUTORELOAD_PRELOAD_ENABLE)
// ZASSERT(m_htim->Init.AutoReloadPreload == TIM_AUTORELOAD_PRELOAD_ENABLE)
uint32_t prescaler = 0; uint32_t prescaler = 0;
uint32_t autoreload = 0; uint32_t autoreload = 0;
ZASSERT(chip_calculate_prescaler_and_autoreload_by_expect_freq(chip_get_timer_clock_sorce_freq(m_htim), freq, &prescaler, &autoreload)); ZASSERT(chip_calculate_prescaler_and_autoreload_by_expect_freq(chip_get_timer_clock_sorce_freq(m_htim), freq, &prescaler, &autoreload));
__HAL_TIM_SET_AUTORELOAD(m_htim, autoreload);
__HAL_TIM_SET_PRESCALER(m_htim, prescaler);
HAL_TIM_Base_DeInit(m_htim);
m_htim->Init.Prescaler = prescaler;
m_htim->Init.CounterMode = TIM_COUNTERMODE_UP;
m_htim->Init.Period = autoreload;
m_htim->Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
HAL_TIM_Base_Init(m_htim);
HAL_TIM_Base_Start_IT(m_htim); HAL_TIM_Base_Start_IT(m_htim);

3
chip/chip_tim_irq_shceduler.hpp

@ -55,4 +55,5 @@ class ChipTimIrqShceduler {
void simpleTimer_stop(); void simpleTimer_stop();
}; };
} // namespace iflytop
} // namespace iflytop
Loading…
Cancel
Save