STM MATLAB Simulator
Loading...
Searching...
No Matches
stm32f4xx_matlab_rcc.h
Go to the documentation of this file.
1/**
2**************************************************************************
3* @file stm32f4xx_matlab_rcc.h
4* @brief Заголовочный файл для симулятора клока.
5**************************************************************************
6@details
7Данный файл содержит объявления всякого для симуляции клока STM32F407xx.
8**************************************************************************/
9#ifndef _MATLAB_RCC_H_
10#define _MATLAB_RCC_H_
11
12#include "mcu_wrapper_conf.h"
13
14/**
15 * @addtogroup RCC_SIMULATOR RCC Simulator
16 * @ingroup MAIN_SIMULATOR
17 * @brief Симулятор для RCC и часов таймера
18 * @details Определ¤ет параметры тактирования МК.
19 Содержит дефайны дл¤ скипа бесконечных циклов ожидающих выставление флагов
20 * @{
21 */
22
23
24//#define SYSLCK_Value ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos)
25//#define AHB_Prescaler ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos)
26//#define AHB_Prescaler ((RCC->CFGR & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos)
27
28#define HCLK_Value (double)72000000;
29#define ABP1_Value (double)72000000;
30#define ABP1_TIMS_Value (double)72000000;
31#define ABP2_Value (double)72000000;
32#define ABP2_TIMS_Value (double)72000000;
33
34/* Эти дефайны добавлены в код stm32f4xx_hal_rcc.c, чтобы не попасть в бесконечный цикл */
35/* Мб перенести в MCU_Periph_Simulation(), но чет не хочется нагружать симуляцию этой херней */
36#define _RCC_SET_FLAG(__FLAG__) \
37if(((__FLAG__) >> 5U) == 1U) RCC->CR |= (1U << ((__FLAG__) & RCC_FLAG_MASK)); \
38else if(((__FLAG__) >> 5U) == 2U) RCC->BDCR |= (1U << ((__FLAG__) & RCC_FLAG_MASK)); \
39else if(((__FLAG__) >> 5U) == 3U) RCC->CSR |= (1U << ((__FLAG__) & RCC_FLAG_MASK)); \
40else RCC->CIR |= (1U << ((__FLAG__) & RCC_FLAG_MASK))
41
42#define _RCC_CLEAR_FLAG(__FLAG__) \
43if(((__FLAG__) >> 5U) == 1U) RCC->CR &= ~(1U << ((__FLAG__) & RCC_FLAG_MASK)); \
44else if(((__FLAG__) >> 5U) == 2U) RCC->BDCR &= ~(1U << ((__FLAG__) & RCC_FLAG_MASK)); \
45else if(((__FLAG__) >> 5U) == 3U) RCC->CSR &= ~(1U << ((__FLAG__) & RCC_FLAG_MASK)); \
46else RCC->CIR &= ~(1U << ((__FLAG__) & RCC_FLAG_MASK))
47
48#define Set_Flag_If_Its_Expected(_flag_, _condition_) \
49if(_condition_) _RCC_CLEAR_FLAG(_flag_)
50
51#define Clear_Flag_If_Its_Expected(_flag_, _condition_) \
52if(_condition_) _RCC_SET_FLAG(_flag_)
53
54/** RCC_SIMULATOR
55 * @}
56 */
57
58#endif // _MATLAB_RCC_H_
Заголовочный файл для оболочки МК.