반응형

 

 

 

두번째 예제에서는 하나의 함수를 구현해놓고 두 개의 태스크에서 같이 사용하는 것을 보여줍니다. 어떤 태스크가 돌고 있는지 구분하기 위해서 파라메터로 문자열을 넘겨주어 태스크가 출력하도록 하고 있습니다.

 

실행결과는 첫번째 예제와 동일합니다.

 

  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.   //같은 함수를 사용하는  개의 태스크를 생성하고 각각 다른 파라메타를 넘겨준다  
  26.   xTaskCreate( vTaskFunction, "Task 1", 200, (void*)pcTextForTask1, 1,  NULL );     
  27.   xTaskCreate( vTaskFunction, "Task 2", 200, (void*)pcTextForTask2, 1, NULL );  
  28.     
  29.   //스케줄러를 시작한다  
  30.   vTaskStartScheduler();  
  31.     
  32.   Serial.println( F("Insufficient RAM") );  
  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.   //파라메터로 받은 문자열을 char* 캐스팅해서 저장한다.  
  45.   pcTaskName = ( char * ) pvParameters;  
  46.     
  47.   //무한 루프 돌도록 구현한다.  
  48.   for( ;; )  
  49.   {  
  50.     //태스크 이름을 출력한다.  
  51.     vPrintString( pcTaskName );  
  52.     
  53.     //일정 시간 대기  
  54.     for( ul = 0; ul < mainDELAY_LOOP_COUNT; ul++ )  
  55.     {  
  56.     }  
  57.   }  
  58. }  
  59. //------------------------------------------------------------------------------  
  60. void loop() {}  


문제 발생시 지나치지 마시고 댓글 남겨주시면 가능한 빨리 답장드립니다.


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

+ Recent posts