반응형

 

 

 

세번째 예제는 똑같이 두 개의 태스크를 실행하는데 우선순위를 다르게 하면 어떻게 되는지를 보여줍니다. 아두이노에 업로드 시켜보며 우선선위가 높은 태스크2만 계속 출력되는 것을 확인할 수 있습니다. 이전 예제들에서는 두 개의 태스크가 모두 우선순위가 같아서 번갈아 문자열이 출력 되었죠.

 

 

  1. /* FreeRTOS.org includes. */  
  2. //#include "FreeRTOS.h"  
  3. //#include "task.h"  
  4. #include "FreeRTOS_AVR.h"  
  5.     
  6. /* Demo includes. */  
  7. #include "basic_io_avr.h"  
  8.     
  9. /* Used as a loop counter to create a very crude delay. */  
  10. #define mainDELAY_LOOP_COUNT    400000 //( 0xffffff )  
  11.     
  12. //태스크에서 사용되는 함수   
  13. void vTaskFunction( void *pvParameters );  
  14.     
  15. //태스크로 넘겨줄  개의 문자열을 선언  
  16. const char *pcTextForTask1 = "Task 1 is running\r\n";  
  17. const char *pcTextForTask2 = "Task 2 is running\t\n";  
  18.     
  19. /*-----------------------------------------------------------*/  
  20.     
  21. void setup( void )  
  22. {  
  23.   Serial.begin(9600);  
  24.       
  25.   //첫번째 태스크는 우선순위 1 생성하고   
  26.   xTaskCreate( vTaskFunction, "Task 1", 200, (void*)pcTextForTask1, 1, NULL );  
  27.     
  28.   //두번째 태스크는 우선순위 2 생성한다.  
  29.   xTaskCreate( vTaskFunction, "Task 2", 200, (void*)pcTextForTask2, 2, NULL );  
  30.     
  31.   //스케줄러를 시작한다.  
  32.   vTaskStartScheduler();  
  33.     
  34.   for( ;; );  
  35. //  return 0;  
  36. }  
  37. /*-----------------------------------------------------------*/  
  38.     
  39. void vTaskFunction( void *pvParameters )  
  40. {  
  41.   char *pcTaskName;  
  42.   volatile unsigned long ul;  
  43.     
  44.   pcTaskName = ( char * ) pvParameters;  
  45.     
  46.     
  47.   for( ;; )  
  48.   {  
  49.     //태스크 이름을 출력  
  50.     vPrintString( pcTaskName );  
  51.     
  52.     //일정한 시간 대기  
  53.     for( ul = 0; ul < mainDELAY_LOOP_COUNT; ul++ )  
  54.     {  
  55.     }  
  56.   }  
  57. }  
  58. //-----------------------------------------------------------------  
  59. void loop() {}  


반응형

해보고 확인한 것을 문서화하여 기록합니다.


부족함이 있지만 도움이 되었으면 합니다.
잘못된 부분이나 개선점을 알려주시면 감사하겠습니다.



포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
문제가 생기면 포스트와 바뀐 환경이 있나 먼저 확인해보세요.

질문을 남겨주면 가능한 빨리 답변드립니다.


제가 쓴 책도 한번 검토해보세요 ^^

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기

댓글을 달아 주세요

">