|
STM MATLAB Simulator
|
Симулятор для таймеров More...
Collaboration diagram for TIM Simulator:Data Structures | |
| struct | SlaveChannels |
| Структура для управления Слейв Таймерами More... | |
| struct | Channels_Sim |
| Структура для моделирования каналов таймера More... | |
| struct | TIM_Sim |
| Структура для моделирования таймера More... | |
Macros | |
| #define | TIM_OCMODE_SECOND_SHIFT (TIM_CCMR1_OC2M_Pos - TIM_CCMR1_OC1M_Pos) |
| Дефайн для сдвига между первой и второй половиной CCMRx регистров | |
| #define | Check_OCx_GPIO_Output(_tims_, _OCx_GPIOx_, _OCx_PIN_SHIFT_) (_tims_->Channels._OCx_GPIOx_->MODER & (0b11<<(2*_tims_->Channels._OCx_PIN_SHIFT_))) == (0b10<<(2*_tims_->Channels._OCx_PIN_SHIFT_)) |
| Дефайн для проверки выводить ли канал таймера на GPIO. | |
| #define | Check_OC1_GPIO_Output(_tims_) Check_OCx_GPIO_Output(_tims_, OC1_GPIOx, OC1_PIN_SHIFT) |
| Дефайн для проверки выводить ли канал 1 на GPIO (настроен ли GPIO на альтернативную функцию) | |
| #define | Check_OC2_GPIO_Output(_tims_) Check_OCx_GPIO_Output(_tims_, OC2_GPIOx, OC2_PIN_SHIFT) |
| Дефайн для проверки выводить ли канал 2 на GPIO (настроен ли GPIO на альтернативную функцию) | |
| #define | Check_OC3_GPIO_Output(_tims_) Check_OCx_GPIO_Output(_tims_, OC3_GPIOx, OC3_PIN_SHIFT) |
| Дефайн для проверки выводить ли канал 3 на GPIO (настроен ли GPIO на альтернативную функцию) | |
| #define | Check_OC4_GPIO_Output(_tims_) Check_OCx_GPIO_Output(_tims_, OC4_GPIOx, OC4_PIN_SHIFT) |
| Дефайн для проверки выводить ли канал 4 на GPIO (настроен ли GPIO на альтернативную функцию) | |
Functions | |
| void | TIM_Simulation (TIM_TypeDef *TIMx, struct TIM_Sim *TIMS) |
| Симуляция таймера на один такт симуляции. | |
| void | TIMx_Count (TIM_TypeDef *TIMx, struct TIM_Sim *TIMS) |
| Симуляция счетчика таймера на один такт симуляции. | |
| void | Overflow_Check (TIM_TypeDef *TIMx, struct TIM_Sim *TIMS) |
| Проверка на переполнение и дальнейшая его обработка. | |
| void | call_IRQHandller (TIM_TypeDef *TIMx) |
| Вызов прерывания таймера TIMx. | |
| void | Channels_Simulation (TIM_TypeDef *TIMx, struct TIM_Sim *TIMS) |
| Симуляция каналов таймера. | |
| void | CC_PWM_Ch1_Simulation (TIM_TypeDef *TIMx, struct TIM_Sim *TIMS) |
| Выбор режима первого канала и его симуляция. | |
| void | CC_PWM_Ch2_Simulation (TIM_TypeDef *TIMx, struct TIM_Sim *TIMS) |
| Выбор режима второго канала и его симуляция. | |
| void | CC_PWM_Ch3_Simulation (TIM_TypeDef *TIMx, struct TIM_Sim *TIMS) |
| Выбор режима третьего канала и его симуляция. | |
| void | CC_PWM_Ch4_Simulation (TIM_TypeDef *TIMx, struct TIM_Sim *TIMS) |
| Выбор режима четвертого канала и его симуляция. | |
| void | Write_OC_to_GPIO (TIM_TypeDef *TIMx, struct TIM_Sim *TIMS) |
| Запись каналов таймера в порты GPIO. | |
| void | Write_OC_to_TRGO (TIM_TypeDef *TIMx, struct TIM_Sim *TIMS) |
| Запись каналов таймера в глабальную структуру с TRIGGER OUTPUT. | |
| void | Slave_Mode_Check_Source (TIM_TypeDef *TIMx) |
| Определение источника для запуска таймера в SLAVE MODE. | |
| void | Simulate_TIMs (void) |
| Симуляция выбранных таймеров. | |
| void | TIM_SIM_DEINIT (void) |
| Деинициализирование выбранных таймеров. | |
Симулятор для таймеров
Дефайны и функции для симуляции таймеров.
| #define TIM_OCMODE_SECOND_SHIFT (TIM_CCMR1_OC2M_Pos - TIM_CCMR1_OC1M_Pos) |
Дефайн для сдвига между первой и второй половиной CCMRx регистров
Definition at line 28 of file stm32f4xx_matlab_tim.h.
| #define Check_OCx_GPIO_Output | ( | _tims_, | |
| _OCx_GPIOx_, | |||
| _OCx_PIN_SHIFT_ ) (_tims_->Channels._OCx_GPIOx_->MODER & (0b11<<(2*_tims_->Channels._OCx_PIN_SHIFT_))) == (0b10<<(2*_tims_->Channels._OCx_PIN_SHIFT_)) |
Дефайн для проверки выводить ли канал таймера на GPIO.
Данный дефайн проверяет, настроен ли пин GPIO на альтернативную функцию. Если да - то таймер выводиться на этот пин
Definition at line 34 of file stm32f4xx_matlab_tim.h.
| #define Check_OC1_GPIO_Output | ( | _tims_ | ) | Check_OCx_GPIO_Output(_tims_, OC1_GPIOx, OC1_PIN_SHIFT) |
Дефайн для проверки выводить ли канал 1 на GPIO (настроен ли GPIO на альтернативную функцию)
Definition at line 38 of file stm32f4xx_matlab_tim.h.
| #define Check_OC2_GPIO_Output | ( | _tims_ | ) | Check_OCx_GPIO_Output(_tims_, OC2_GPIOx, OC2_PIN_SHIFT) |
Дефайн для проверки выводить ли канал 2 на GPIO (настроен ли GPIO на альтернативную функцию)
Definition at line 42 of file stm32f4xx_matlab_tim.h.
| #define Check_OC3_GPIO_Output | ( | _tims_ | ) | Check_OCx_GPIO_Output(_tims_, OC3_GPIOx, OC3_PIN_SHIFT) |
Дефайн для проверки выводить ли канал 3 на GPIO (настроен ли GPIO на альтернативную функцию)
Definition at line 46 of file stm32f4xx_matlab_tim.h.
| #define Check_OC4_GPIO_Output | ( | _tims_ | ) | Check_OCx_GPIO_Output(_tims_, OC4_GPIOx, OC4_PIN_SHIFT) |
Дефайн для проверки выводить ли канал 4 на GPIO (настроен ли GPIO на альтернативную функцию)
Definition at line 50 of file stm32f4xx_matlab_tim.h.
| void TIM_Simulation | ( | TIM_TypeDef * | TIMx, |
| struct TIM_Sim * | TIMS ) |
Симуляция таймера на один такт симуляции.
| TIMx | – таймер, каналы которого надо записать. |
| TIMS | – структура таймера для симуляции. |
Это базовая функция для симуляции таймера: она вызывается каждый шаг симуляции и вызывает все другие функции, необходимые для симуляции:
Definition at line 28 of file stm32f4xx_matlab_tim.c.
Here is the call graph for this function:| void TIMx_Count | ( | TIM_TypeDef * | TIMx, |
| struct TIM_Sim * | TIMS ) |
Симуляция счетчика таймера на один такт симуляции.
| TIMx | – таймер, каналы которого надо записать. |
| TIMS | – структура таймера для симуляции. |
Данная функция проверяет направление таймера и увеличивает или уменьшает значение счетчика на то число, на которое оно бы увеличилось за шаг симуляции.
Definition at line 63 of file stm32f4xx_matlab_tim.c.
| void Overflow_Check | ( | TIM_TypeDef * | TIMx, |
| struct TIM_Sim * | TIMS ) |
Проверка на переполнение и дальнейшая его обработка.
| TIMx | – таймер, каналы которого надо записать. |
| TIMS | – структура таймера для симуляции. |
Данная функция проверяет когда таймер переполниться и если надо, вызывает соответствующее прерывание:
Definition at line 80 of file stm32f4xx_matlab_tim.c.
Here is the call graph for this function:| void call_IRQHandller | ( | TIM_TypeDef * | TIMx | ) |
Вызов прерывания таймера TIMx.
| TIMx | – таймер, прерываний которого надо вызвать. |
Данная функция симулирует аппаратный вызов прерывания таймера по какому-либо событию.
Definition at line 665 of file stm32f4xx_matlab_tim.c.
Here is the call graph for this function:| void Channels_Simulation | ( | TIM_TypeDef * | TIMx, |
| struct TIM_Sim * | TIMS ) |
Симуляция каналов таймера.
| TIMx | – таймер, каналы которого надо записать. |
| TIMS | – структура таймера для симуляции. |
Данная функция симулирует работу всех каналов таймера. Она вызывает функции:
Definition at line 118 of file stm32f4xx_matlab_tim.c.
Here is the call graph for this function:| void CC_PWM_Ch1_Simulation | ( | TIM_TypeDef * | TIMx, |
| struct TIM_Sim * | TIMS ) |
Выбор режима первого канала и его симуляция.
| TIMx | – таймер, каналы которого надо записать. |
| TIMS | – структура таймера для симуляции. |
Данная функция по регистрам таймера проверяет как настроен первый канал и соответствующе симулирует его работу.
Definition at line 137 of file stm32f4xx_matlab_tim.c.
| void CC_PWM_Ch2_Simulation | ( | TIM_TypeDef * | TIMx, |
| struct TIM_Sim * | TIMS ) |
Выбор режима второго канала и его симуляция.
| TIMx | – таймер, каналы которого надо записать. |
| TIMS | – структура таймера для симуляции. |
Данная функция по регистрам таймера проверяет как настроен второй канал и соответствующе симулирует его работу.
Definition at line 185 of file stm32f4xx_matlab_tim.c.
| void CC_PWM_Ch3_Simulation | ( | TIM_TypeDef * | TIMx, |
| struct TIM_Sim * | TIMS ) |
Выбор режима третьего канала и его симуляция.
| TIMx | – таймер, каналы которого надо записать. |
| TIMS | – структура таймера для симуляции. |
Данная функция по регистрам таймера проверяет как настроен третий канал и соответствующе симулирует его работу.
Definition at line 233 of file stm32f4xx_matlab_tim.c.
| void CC_PWM_Ch4_Simulation | ( | TIM_TypeDef * | TIMx, |
| struct TIM_Sim * | TIMS ) |
Выбор режима четвертого канала и его симуляция.
| TIMx | – таймер, каналы которого надо записать. |
| TIMS | – структура таймера для симуляции. |
Данная функция по регистрам таймера проверяет как настроен четвертый канал и соответствующе симулирует его работу.
Definition at line 281 of file stm32f4xx_matlab_tim.c.
| void Write_OC_to_GPIO | ( | TIM_TypeDef * | TIMx, |
| struct TIM_Sim * | TIMS ) |
Запись каналов таймера в порты GPIO.
| TIMx | – таймер, каналы которого надо записать. |
| TIMS | – структура того же таймера для симуляции. |
Данная функция записывает каналы OC в порты GPIO, определенные в TIMS. Запись происходит только если пин настроен на альтернативную функцию.
Definition at line 330 of file stm32f4xx_matlab_tim.c.
| void Write_OC_to_TRGO | ( | TIM_TypeDef * | TIMx, |
| struct TIM_Sim * | TIMS ) |
Запись каналов таймера в глабальную структуру с TRIGGER OUTPUT.
Запись результата compare в глабальную структуру с TRIGGER OUTPUT
| TIMx | – таймер, каналы которого надо записать. |
| TIMS | – структура того же таймера для симуляции. |
Данная функция считывает каналы OC и записывает их в внешний канал триггера TRGO.
Definition at line 410 of file stm32f4xx_matlab_tim.c.
| void Slave_Mode_Check_Source | ( | TIM_TypeDef * | TIMx | ) |
Определение источника для запуска таймера в SLAVE MODE.
Определение источника для запуска таймера в SLAVE MODE
| TIMx | – таймер, который надо включить. |
| TIMx | – таймер, прерываний которого надо вызвать. |
Данная функция проверяет какой триггер выбран для запуска таймера, после записывает значение канала триггера в бит включения таймера. Таким образом, при лог.1 в канале триггера - таймер включиться.
Definition at line 464 of file stm32f4xx_matlab_tim.c.
| void Simulate_TIMs | ( | void | ) |
Симуляция выбранных таймеров.
Симулирование выбранных через дефайн таймеров
Таймеры для симуляции выбираются через дефайны в stm32f4xx_matlab_conf.h. Функция вызывается на каждом шаге симуляции.
Definition at line 521 of file stm32f4xx_matlab_tim.c.
Here is the call graph for this function:| void TIM_SIM_DEINIT | ( | void | ) |
Деинициализирование выбранных таймеров.
Таймеры для деинициализизации выбираются через дефайны в stm32f4xx_matlab_conf.h. Функция вызывается в конце симуляции.
Definition at line 571 of file stm32f4xx_matlab_tim.c.