trying to toggle output on output compare and in interrupt, not working
This commit is contained in:
@ -18,6 +18,11 @@
|
||||
#include <PontCoopScheduler.h>
|
||||
#include "stm32f1xx_hal.h"
|
||||
|
||||
|
||||
extern TIM_HandleTypeDef htim1;
|
||||
extern TIM_HandleTypeDef htim2;
|
||||
|
||||
|
||||
void blink(void *handle) {
|
||||
HAL_GPIO_TogglePin(LED_PIN_GPIO_Port, LED_PIN_Pin);
|
||||
|
||||
@ -25,11 +30,20 @@ void blink(void *handle) {
|
||||
|
||||
void my_setup_1() {
|
||||
schInit();
|
||||
schAdd(blink, NULL, 0, 1000);
|
||||
schAdd(blink, NULL, 0, 100);
|
||||
}
|
||||
|
||||
void my_setup_2() {
|
||||
HAL_TIM_OC_Start_IT(&htim1, TIM_CHANNEL_1);
|
||||
HAL_TIM_OC_Start_IT(&htim1, TIM_CHANNEL_2);
|
||||
HAL_TIM_OC_Start_IT(&htim1, TIM_CHANNEL_3);
|
||||
|
||||
HAL_TIM_OC_Start(&htim2, TIM_CHANNEL_1);
|
||||
HAL_TIM_OC_Start(&htim2, TIM_CHANNEL_2);
|
||||
HAL_TIM_OC_Start(&htim2, TIM_CHANNEL_3);
|
||||
|
||||
HAL_NVIC_SetPriority(TIM1_CC_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(TIM1_CC_IRQn);
|
||||
}
|
||||
|
||||
void my_loop() {
|
||||
@ -41,3 +55,15 @@ void HAL_SYSTICK_Callback() {
|
||||
//HAL_GPIO_TogglePin(LED_PIN_GPIO_Port, LED_PIN_Pin);
|
||||
schUpdate();
|
||||
}
|
||||
|
||||
void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef * htim) {
|
||||
if (htim->Instance == TIM1) {
|
||||
if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1) {
|
||||
HAL_GPIO_TogglePin(LED2_PIN_GPIO_Port, LED2_PIN_Pin);
|
||||
} else if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_2) {
|
||||
HAL_GPIO_TogglePin(LED3_PIN_GPIO_Port, LED3_PIN_Pin);
|
||||
} else if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_3) {
|
||||
HAL_GPIO_TogglePin(LED4_PIN_GPIO_Port, LED4_PIN_Pin);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user