Compare commits

..

No commits in common. "eaf764636d57838848c6db5ebf50529e649485a0" and "8ad28e5e3931e5985333d454886322392ce4dc79" have entirely different histories.

37
main.c
View File

@ -19,19 +19,13 @@
GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitTypeDef GPIO_InitStruct;
osThreadId_t idTask1, idTask2; osThreadId_t idTask1;
osEventFlagsId_t evt_id; osEventFlagsId_t evt_id;
const osThreadAttr_t AttrTask1 = { const osThreadAttr_t AttrTask1 = {
.stack_size = 512, // Create the thread stack size
.priority = osPriorityHigh, //Set initial thread priority to high
.name = "Task 1"
};
const osThreadAttr_t AttrTask2 = {
.stack_size = 512, // Create the thread stack size .stack_size = 512, // Create the thread stack size
.priority = osPriorityNormal, //Set initial thread priority to high .priority = osPriorityNormal, //Set initial thread priority to high
.name = "Task 2" .name = "Task 1"
}; };
void init_button(void) void init_button(void)
@ -57,33 +51,19 @@ void EXTI2_IRQHandler(void)
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_PIN) void HAL_GPIO_EXTI_Callback(uint16_t GPIO_PIN)
{ {
//button interrupt //button interrupt
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_9, 1); HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_9);
osEventFlagsSet(evt_id, 0x1U);
} }
/*---------------------------------------------------------------------------- /*----------------------------------------------------------------------------
* Thread 1 * Thread 1
*---------------------------------------------------------------------------*/ *---------------------------------------------------------------------------*/
__NO_RETURN static void task1(void *argument) { __NO_RETURN static void taskCounter(void *argument) {
for (;;) { for (;;) {
osEventFlagsWait(evt_id, 0x1U, osFlagsNoClear, osWaitForever); osEventFlagsWait(evt_id);
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_9, 0); osEventFlagsClear(evt_id, );
}
}
/*----------------------------------------------------------------------------
* Thread 2
*---------------------------------------------------------------------------*/
__NO_RETURN static void task2(void *argument) {
for (;;) {
osEventFlagsWait(evt_id, 0x1U, osFlagsNoClear, osWaitForever);
osEventFlagsClear(evt_id, 0x1U);
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_9, 0);
} }
} }
@ -136,9 +116,8 @@ int main (void) {
osKernelInitialize(); // Initialize CMSIS-RTOS osKernelInitialize(); // Initialize CMSIS-RTOS
idTask1 = osThreadNew(task1, NULL, &AttrTask1); idTask1 = osThreadNew(taskCounter, NULL, &AttrTask1);
idTask2 = osThreadNew(task2, NULL, &AttrTask2);
//events //events
evt_id = osEventFlagsNew(NULL); evt_id = osEventFlagsNew(NULL);