STM MATLAB Simulator
Loading...
Searching...
No Matches
stm32f4xx_matlab_rcc.h
Go to the documentation of this file.
1#ifndef _MATLAB_RCC_H_
2#define _MATLAB_RCC_H_
3
4#include "mcu_wrapper_conf.h"
5
16//#define SYSLCK_Value ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos)
17//#define AHB_Prescaler ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos)
18//#define AHB_Prescaler ((RCC->CFGR & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos)
19
20#define HCLK_Value (double)72000000;
21#define ABP1_Value (double)72000000;
22#define ABP1_TIMS_Value (double)72000000;
23#define ABP2_Value (double)72000000;
24#define ABP2_TIMS_Value (double)72000000;
25
26/* Эти дефайны добавлены в код stm32f4xx_hal_rcc.c, чтобы не попасть в бесконечный цикл */
27/* Мб перенести в MCU_Periph_Simulation(), но чет не хочется нагружать симуляцию этой херней*/
28#define _RCC_SET_FLAG(__FLAG__) \
29if(((__FLAG__) >> 5U) == 1U) RCC->CR |= (1U << ((__FLAG__) & RCC_FLAG_MASK)); \
30else if(((__FLAG__) >> 5U) == 2U) RCC->BDCR |= (1U << ((__FLAG__) & RCC_FLAG_MASK)); \
31else if(((__FLAG__) >> 5U) == 3U) RCC->CSR |= (1U << ((__FLAG__) & RCC_FLAG_MASK)); \
32else RCC->CIR |= (1U << ((__FLAG__) & RCC_FLAG_MASK))
33
34#define _RCC_CLEAR_FLAG(__FLAG__) \
35if(((__FLAG__) >> 5U) == 1U) RCC->CR &= ~(1U << ((__FLAG__) & RCC_FLAG_MASK)); \
36else if(((__FLAG__) >> 5U) == 2U) RCC->BDCR &= ~(1U << ((__FLAG__) & RCC_FLAG_MASK)); \
37else if(((__FLAG__) >> 5U) == 3U) RCC->CSR &= ~(1U << ((__FLAG__) & RCC_FLAG_MASK)); \
38else RCC->CIR &= ~(1U << ((__FLAG__) & RCC_FLAG_MASK))
39
40#define Set_Flag_If_Its_Expected(_flag_, _condition_) \
41if(_condition_) _RCC_CLEAR_FLAG(_flag_)
42
43#define Clear_Flag_If_Its_Expected(_flag_, _condition_) \
44if(_condition_) _RCC_SET_FLAG(_flag_)
45
50#endif // _MATLAB_RCC_H_