[uCOS/RTOS] 信号量工程运行不对

[复制链接]
 楼主| 发表于 2024-11-12 13:00 | 显示全部楼层 |阅读模式
代码:
  1. #include "FreeRTOS.h"
  2. #include "semphr.h"
  3. #include "task.h"
  4. #include "LEDBlinkV1.h"


  5. #include "cfg.h"
  6. #include "macromcu.h"

  7. #define LONG_TIME 0xffff

  8. xSemaphoreHandle xSemaphore;

  9. void vTask1( void * pvParameters )
  10. {
  11.         const portTickType xDelay = 500 / portTICK_RATE_MS;

  12.         // 创建信号
  13.         vSemaphoreCreateBinary( xSemaphore );

  14.         for( ;; )
  15.         {
  16.                 //vTaskDelay( xDelay )
  17.                 _delay_ms(500);
  18.                 PININV(LED1);

  19.                 //BUTTON按下时,发出信号
  20.                 if(( xSemaphore != NULL ) && (PININ(BUTTON) == 0))
  21.                 {
  22.                         PININV(LED3);
  23.                         xSemaphoreGive( xSemaphore );
  24.                 }
  25.         }
  26. }

  27. void vTask2( void * pvParameters )
  28. {

  29.         for( ;; )
  30.         {
  31.                 //收到信号后LED2闪
  32.                 if( xSemaphoreTake( xSemaphore, LONG_TIME ) == pdTRUE )
  33.                 {
  34.                         PININV(LED2);
  35.                         PININV(LED4);
  36.                 }
  37.                 taskYIELD();
  38.         }
  39. }

  40. int main()
  41. {
  42.         PINDIR(LED1, PIN_OUTPUT);
  43.         PINDIR(LED2, PIN_OUTPUT);
  44.         PINDIR(LED3, PIN_OUTPUT);
  45.         PINDIR(LED4, PIN_OUTPUT);
  46.         PINSET(LED2);
  47.         PINDIR(BUTTON, PIN_INPUT);
  48.         PINSET(BUTTON);

  49.         xTaskCreate( vTask1, "TASK1", configMINIMAL_STACK_SIZE, NULL, 1, NULL );
  50.         xTaskCreate( vTask2, "TASK2", configMINIMAL_STACK_SIZE, NULL, 1, NULL );

  51.         vTaskStartScheduler();

  52.         while(1);

  53.         return 0;
  54. }
  1. #ifndef configUSE_COUNTING_SEMAPHORES
  2.         #define configUSE_COUNTING_SEMAPHORES 1
  3. #endif
用proteus仿真,收不到消息。请问高手,哪里有错误?谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

470

主题

3541

帖子

7

粉丝
快速回复 返回顶部 返回列表