아두이노 freeRTOS 튜토리얼 2Arduino FreeRTOS2015. 1. 14. 19:23
Table of Contents
반응형
두번째 예제에서는 하나의 함수를 구현해놓고 두 개의 태스크에서 같이 사용하는 것을 보여줍니다. 어떤 태스크가 돌고 있는지 구분하기 위해서 파라메터로 문자열을 넘겨주어 태스크가 출력하도록 하고 있습니다.
실행결과는 첫번째 예제와 동일합니다.
- /* FreeRTOS.org includes. */
- //#include "FreeRTOS.h"
- //#include "task.h"
- #include "FreeRTOS_AVR.h"
- /* Demo includes. */
- #include "basic_io_avr.h"
- /* Used as a loop counter to create a very crude delay. */
- #define mainDELAY_LOOP_COUNT 400000// ( 0xffffff )
- //태스크에서 사용할 함수
- void vTaskFunction( void *pvParameters );
- //태스크로 넘겨줄 두 개의 문자열을 선언
- const char *pcTextForTask1 = "Task 1 is running\r\n";
- const char *pcTextForTask2 = "Task 2 is running\t\n";
- /*-----------------------------------------------------------*/
- void setup( void )
- {
- Serial.begin(9600);
- //같은 함수를 사용하는 두 개의 태스크를 생성하고 각각 다른 파라메타를 넘겨준다
- xTaskCreate( vTaskFunction, "Task 1", 200, (void*)pcTextForTask1, 1, NULL );
- xTaskCreate( vTaskFunction, "Task 2", 200, (void*)pcTextForTask2, 1, NULL );
- //스케줄러를 시작한다.
- vTaskStartScheduler();
- Serial.println( F("Insufficient RAM") );
- for( ;; );
- // return 0;
- }
- /*-----------------------------------------------------------*/
- void vTaskFunction( void *pvParameters )
- {
- char *pcTaskName;
- volatile unsigned long ul;
- //파라메터로 받은 문자열을 char*로 캐스팅해서 저장한다.
- pcTaskName = ( char * ) pvParameters;
- //무한 루프 돌도록 구현한다.
- for( ;; )
- {
- //태스크 이름을 출력한다.
- vPrintString( pcTaskName );
- //일정 시간 대기
- for( ul = 0; ul < mainDELAY_LOOP_COUNT; ul++ )
- {
- }
- }
- }
- //------------------------------------------------------------------------------
- void loop() {}
반응형
'Arduino FreeRTOS' 카테고리의 다른 글
아두이노 freeRTOS 튜토리얼 5 (0) | 2015.01.14 |
---|---|
아두이노 freeRTOS 튜토리얼 4 (0) | 2015.01.14 |
아두이노 freeRTOS 튜토리얼 3 (0) | 2015.01.14 |
아두이노 freeRTOS 튜토리얼 1 (0) | 2015.01.14 |
Arduino Uno에서 freeRTOS 올려보기 (0) | 2015.01.12 |