From c3e4c9a25c2910d2d66d52215b3406b13d5b23d5 Mon Sep 17 00:00:00 2001 From: Yuval Adam Date: Sun, 29 Jun 2014 12:34:32 +0300 Subject: Add more board models --- boards/dk-tm4c129x/freertos_demo/led_task.c | 120 ++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 boards/dk-tm4c129x/freertos_demo/led_task.c (limited to 'boards/dk-tm4c129x/freertos_demo/led_task.c') diff --git a/boards/dk-tm4c129x/freertos_demo/led_task.c b/boards/dk-tm4c129x/freertos_demo/led_task.c new file mode 100644 index 0000000..6929dd5 --- /dev/null +++ b/boards/dk-tm4c129x/freertos_demo/led_task.c @@ -0,0 +1,120 @@ +//***************************************************************************** +// +// led_task.c - A simple flashing LED task. +// +// Copyright (c) 2009-2014 Texas Instruments Incorporated. All rights reserved. +// Software License Agreement +// +// Texas Instruments (TI) is supplying this software for use solely and +// exclusively on TI's microcontroller products. The software is owned by +// TI and/or its suppliers, and is protected under applicable copyright +// laws. You may not combine this software with "viral" open-source +// software in order to form a larger program. +// +// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. +// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT +// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY +// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL +// DAMAGES, FOR ANY REASON WHATSOEVER. +// +// This is part of revision 2.1.0.12573 of the DK-TM4C129X Firmware Package. +// +//***************************************************************************** + +#include +#include +#include "inc/hw_memmap.h" +#include "inc/hw_types.h" +#include "driverlib/gpio.h" +#include "driverlib/rom.h" +#include "idle_task.h" +#include "led_task.h" +#include "priorities.h" +#include "FreeRTOS.h" +#include "task.h" +#include "queue.h" +#include "semphr.h" +//***************************************************************************** +// +// The stack size for the LED toggle task. +// +//***************************************************************************** +#define STACKSIZE_LEDTASK 128 + +//***************************************************************************** +// +// The amount of time to delay between toggles of the LED. +// +//***************************************************************************** +uint32_t g_ui32LEDDelay = 500; + +//***************************************************************************** +// +// This task simply toggles the user LED at a 1 Hz rate. +// +//***************************************************************************** +static void +LEDTask(void *pvParameters) +{ + portTickType ui32LastTime; + + // + // Get the current tick count. + // + ui32LastTime = xTaskGetTickCount(); + + // + // Loop forever. + // + while(1) + { + // + // Turn on the user LED. + // + ROM_GPIOPinWrite(GPIO_PORTQ_BASE, GPIO_PIN_7, GPIO_PIN_7); + + // + // Wait for the required amount of time. + // + vTaskDelayUntil(&ui32LastTime, g_ui32LEDDelay / portTICK_RATE_MS); + + // + // Turn off the user LED. + // + ROM_GPIOPinWrite(GPIO_PORTQ_BASE, GPIO_PIN_7, 0); + + // + // Wait for the required amount of time. + // + vTaskDelayUntil(&ui32LastTime, g_ui32LEDDelay / portTICK_RATE_MS); + } +} + +//***************************************************************************** +// +// Initializes the LED task. +// +//***************************************************************************** +uint32_t +LEDTaskInit(void) +{ + // + // Initialize the GPIO used to drive the user LED. + // + ROM_GPIOPinTypeGPIOOutput(GPIO_PORTQ_BASE, GPIO_PIN_7); + + // + // Create the LED task. + // + if(xTaskCreate(LEDTask, (signed portCHAR *)"LED", STACKSIZE_LEDTASK, NULL, + tskIDLE_PRIORITY + PRIORITY_LED_TASK, NULL) != pdTRUE) + { + return(1); + } + + // + // Success. + // + return(0); +} -- cgit v1.3.1