아두이노 freeRTOS 튜토리얼 9Arduino FreeRTOS2015. 1. 15. 15:49
Table of Contents
반응형
태스크 1이 실행되면 자신보다 우선순위 높은 태스크 2를 생성한다.
그러면 태스크2가 바로 실행되는데 이때 자기 자신을 삭제한다.
결과적으로 가장 높은 우선순위를 가진 태스크1이 다시 실행되어 앞의 과정을 반복하게 된다.
- /* FreeRTOS.org includes. */
- #include "FreeRTOS_AVR.h"
- //#include "task.h"
- /* Demo includes. */
- #include "basic_io_avr.h"
- //두 개의 태스크에서 사용할 함수 선언
- void vTask1( void *pvParameters );
- void vTask2( void *pvParameters );
- //Task2에 대한 핸들을 저장할 변수 선언
- TaskHandle_t xTask2Handle;
- /*-----------------------------------------------------------*/
- void setup( void )
- {
- //태스크내에서 malloc같은 동적메모리를 사용하기 위해서 선언해주어야 한다.
- __malloc_heap_end = (char*)RAMEND;
- Serial.begin(9600);
- //첫번째 태스크를 우선순위 1로 선언
- xTaskCreate( vTask1, "Task 1", 200, NULL, 1, NULL );
- //스케줄러 시작한다.
- vTaskStartScheduler();
- for( ;; );
- // return 0;
- }
- /*-----------------------------------------------------------*/
- void vTask1( void *pvParameters )
- {
- const TickType_t xDelay100ms = 100 / portTICK_PERIOD_MS;
- for( ;; )
- {
- //태스크 이름을 출력한다.
- vPrintString( "Task1 is running and create Task2\r\n" );
- //두번째 태스크를 첫번째 태스크보다 우선순위를 더 높게 선언
- //핸들을 얻기 위해서 xTask2Handle 변수의 주소를 넘겨주고 있다.
- xTaskCreate( vTask2, "Task 2", 200, NULL, 2, &xTask2Handle );
- //태스크2의 우선순위가 더 높기때문에 태스크1에서 여기를 실행할때 쯤에는
- //이미 태스크2는 실행되서 자신을 삭제했을 것이다.
- //100밀리세컨드 동안 시간을 지연시킨다.
- vTaskDelay( xDelay100ms );
- }
- }
- /*-----------------------------------------------------------*/
- void vTask2( void *pvParameters )
- {
- vPrintString( "Task2 is running and about to delete itself\r\n" );
- //원래는 NULL을 넘겨주어도 삭제할 수 있으나 여기에서는
- //태스크1에서 저장했던 태스크2에 대한 핸들을 이용하여 자신을 제거한다.
- vTaskDelete( xTask2Handle );
- }
- /*-----------------------------------------------------------*/
- void loop() {}
반응형
'Arduino FreeRTOS' 카테고리의 다른 글
아두이노 freeRTOS 튜토리얼 11 (0) | 2015.01.16 |
---|---|
아두이노 freeRTOS 튜토리얼 10 (0) | 2015.01.15 |
아두이노 freeRTOS 튜토리얼 8 (0) | 2015.01.15 |
아두이노 freeRTOS 튜토리얼 7 (0) | 2015.01.14 |
아두이노 freeRTOS 튜토리얼 6 (0) | 2015.01.14 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
@webnautes :: 멈춤보단 천천히라도
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!