#include "task_hal.h" #include "cmsis_compiler.h" #include "task.h" void InitPort(void); void Idle(void) { __WFI(); _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); } uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb); void $Sub$$SysTick_Handler(void) { Task_SysTick_Handler(); //myTask 里timer计数 //user_code_insert_to_systick_handler(); //delay_ms delay_us 里timer计数 } void InitTask(void) { InitPort(); StopAllTimer(); uint32_t SystemClock_Freq = HAL_RCC_GetSysClockFreq(); HAL_SYSTICK_Config(SystemClock_Freq/TICKPER1S); // use the longest period } void InitPort(void) { //PB0 // 启用GPIOB端口时钟 __HAL_RCC_GPIOB_CLK_ENABLE(); GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct.Pin = 1; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); } PT_THREAD(TaskBlinLed(struct pt *pt1 )) { static struct timer input_timer; _nop_(); PT_BEGIN(pt1); while(1) { HAL_GPIO_WritePin(GPIOB,1, GPIO_PIN_RESET); //GPIO_ClrBit(GPIO_LED, PORT_LED); // timer_set(&input_timer,100); //timer_set(&input_timer,10); PT_WAIT_UNTIL(pt1, timer_expired(&input_timer)); _nop_(); HAL_GPIO_WritePin(GPIOB,1, GPIO_PIN_SET); //GPIO_SetBit(GPIO_LED, PORT_LED); // timer_set(&input_timer,900); //timer_set(&input_timer,10); PT_WAIT_UNTIL(pt1, timer_expired(&input_timer)); _nop_(); } PT_END(pt1); } PT_THREAD(TaskWDT(struct pt *pt1 )) { return 0; }