Loading...
Searching...
No Matches
stm32f4xx_matlab_rcc.h
Go to the documentation of this file.
/**
**************************************************************************
* @file stm32f4xx_matlab_rcc.h
* @brief Заголовочный файл для симулятора клока.
**************************************************************************
@details
Данный файл содержит объявления всякого для симуляции клока STM32F407xx.
**************************************************************************/
#ifndef _MATLAB_RCC_H_
#define _MATLAB_RCC_H_
#include "mcu_wrapper_conf.h"
/**
* @addtogroup RCC_SIMULATOR RCC Simulator
* @ingroup MAIN_SIMULATOR
* @brief Симулятор для RCC и часов таймера
* @details Определ¤ет параметры тактирования МК.
Содержит дефайны дл¤ скипа бесконечных циклов ожидающих выставление флагов
* @{
*/
//#define SYSLCK_Value ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos)
//#define AHB_Prescaler ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos)
//#define AHB_Prescaler ((RCC->CFGR & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos)
#define HCLK_Value (double)72000000;
#define ABP1_Value (double)72000000;
#define ABP1_TIMS_Value (double)72000000;
#define ABP2_Value (double)72000000;
#define ABP2_TIMS_Value (double)72000000;
/* Эти дефайны добавлены в код stm32f4xx_hal_rcc.c, чтобы не попасть в бесконечный цикл */
/* Мб перенести в MCU_Periph_Simulation(), но чет не хочется нагружать симуляцию этой херней */
#define _RCC_SET_FLAG(__FLAG__) \
if(((__FLAG__) >> 5U) == 1U) RCC->CR |= (1U << ((__FLAG__) & RCC_FLAG_MASK)); \
else if(((__FLAG__) >> 5U) == 2U) RCC->BDCR |= (1U << ((__FLAG__) & RCC_FLAG_MASK)); \
else if(((__FLAG__) >> 5U) == 3U) RCC->CSR |= (1U << ((__FLAG__) & RCC_FLAG_MASK)); \
else RCC->CIR |= (1U << ((__FLAG__) & RCC_FLAG_MASK))
#define _RCC_CLEAR_FLAG(__FLAG__) \
if(((__FLAG__) >> 5U) == 1U) RCC->CR &= ~(1U << ((__FLAG__) & RCC_FLAG_MASK)); \
else if(((__FLAG__) >> 5U) == 2U) RCC->BDCR &= ~(1U << ((__FLAG__) & RCC_FLAG_MASK)); \
else if(((__FLAG__) >> 5U) == 3U) RCC->CSR &= ~(1U << ((__FLAG__) & RCC_FLAG_MASK)); \
else RCC->CIR &= ~(1U << ((__FLAG__) & RCC_FLAG_MASK))
#define Set_Flag_If_Its_Expected(_flag_, _condition_) \
if(_condition_) _RCC_CLEAR_FLAG(_flag_)
#define Clear_Flag_If_Its_Expected(_flag_, _condition_) \
if(_condition_) _RCC_SET_FLAG(_flag_)
/** RCC_SIMULATOR
* @}
*/
#endif // _MATLAB_RCC_H_
mcu_wrapper_conf.h
Заголовочный файл для оболочки МК.