From 6cff82a4bc7ed9fcc7e9ad73a4542d5b1e7c1328 Mon Sep 17 00:00:00 2001 From: Yuval Adam Date: Wed, 7 Nov 2012 23:31:05 +0200 Subject: Revert "Move RGB and button drivers 2 dirs up" This reverts commit 3a282de9331ea261eeadca0dd36c0527f173dd4c. --- drivers/rgb.c | 298 ---------------------------------------------------------- 1 file changed, 298 deletions(-) delete mode 100644 drivers/rgb.c (limited to 'drivers/rgb.c') diff --git a/drivers/rgb.c b/drivers/rgb.c deleted file mode 100644 index f3107f2..0000000 --- a/drivers/rgb.c +++ /dev/null @@ -1,298 +0,0 @@ -//***************************************************************************** -// -// rgb.c - Evaluation board driver for RGB LED. -// -// Copyright (c) 2012 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 9453 of the EK-LM4F120XL Firmware Package. -// -//***************************************************************************** - -#include "inc/hw_types.h" -#include "inc/hw_memmap.h" -#include "inc/hw_timer.h" -#include "driverlib/sysctl.h" -#include "driverlib/rom.h" -#include "driverlib/pin_map.h" -#include "driverlib/timer.h" -#include "driverlib/gpio.h" -#include "rgb.h" - -//***************************************************************************** -// -//! \addtogroup rgb_api -//! @{ -// -//***************************************************************************** - -//***************************************************************************** -// -// This is a custom driver that allows the easy manipulation of the RGB LED. -// -// The driver uses the general purpose timers to govern the brightness of the -// LED through simple PWM output mode of the GP Timers. -// -// A global array contains the current relative color of each of the three -// LEDs. A global float variable controls intensity of the overall mixed color. -// -//***************************************************************************** -static unsigned long g_ulColors[3]; -static float g_fIntensity = 0.3f; - -//***************************************************************************** -// -//! Initializes the Timer and GPIO functionality associated with the RGB LED -//! -//! \param ulEnable enables RGB immediately if set. -//! -//! This function must be called during application initialization to -//! configure the GPIO pins to which the LEDs are attached. It enables -//! the port used by the LEDs and configures each color's Timer. It optionally -//! enables the RGB LED by configuring the GPIO pins and starting the timers. -//! -//! \return None. -// -//***************************************************************************** -void -RGBInit(unsigned long ulEnable) -{ - // - // Enable the GPIO Port and Timer for each LED - // - SysCtlPeripheralEnable(RED_GPIO_PERIPH); - SysCtlPeripheralEnable(RED_TIMER_PERIPH); - - SysCtlPeripheralEnable(GREEN_GPIO_PERIPH); - SysCtlPeripheralEnable(GREEN_TIMER_PERIPH); - - SysCtlPeripheralEnable(BLUE_GPIO_PERIPH); - SysCtlPeripheralEnable(BLUE_TIMER_PERIPH); - - // - // Configure each timer for output mode - // - HWREG(GREEN_TIMER_BASE + TIMER_O_CFG) = 0x04; - HWREG(GREEN_TIMER_BASE + TIMER_O_TAMR) = 0x0A; - HWREG(GREEN_TIMER_BASE + TIMER_O_TAILR) = 0xFFFF; - - HWREG(BLUE_TIMER_BASE + TIMER_O_CFG) = 0x04; - HWREG(BLUE_TIMER_BASE + TIMER_O_TBMR) = 0x0A; - HWREG(BLUE_TIMER_BASE + TIMER_O_TBILR) = 0xFFFF; - - HWREG(RED_TIMER_BASE + TIMER_O_CFG) = 0x04; - HWREG(RED_TIMER_BASE + TIMER_O_TBMR) = 0x0A; - HWREG(RED_TIMER_BASE + TIMER_O_TBILR) = 0xFFFF; - - // - // Invert the output signals. - // - HWREG(RED_TIMER_BASE + TIMER_O_CTL) |= 0x4000; - HWREG(GREEN_TIMER_BASE + TIMER_O_CTL) |= 0x40; - HWREG(BLUE_TIMER_BASE + TIMER_O_CTL) |= 0x4000; - - if(ulEnable) - { - RGBEnable(); - } -} - -//***************************************************************************** -// -//! Enable the RGB LED with already configured timer settings -//! -//! This function or RGBDisable should be called during application -//! initialization to configure the GPIO pins to which the LEDs are attached. -//! This function enables the timers and configures the GPIO pins as timer -//! outputs. -//! -//! \return None. -// -//***************************************************************************** -void -RGBEnable(void) -{ - // - // Enable timers to begin counting - // - TimerEnable(RED_TIMER_BASE, TIMER_BOTH); - TimerEnable(GREEN_TIMER_BASE, TIMER_BOTH); - TimerEnable(BLUE_TIMER_BASE, TIMER_BOTH); - - // - // Reconfigure each LED's GPIO pad for timer control - // - GPIOPinConfigure(GREEN_GPIO_PIN_CFG); - GPIOPinTypeTimer(GREEN_GPIO_BASE, GREEN_GPIO_PIN); - GPIOPadConfigSet(GREEN_GPIO_BASE, GREEN_GPIO_PIN, GPIO_STRENGTH_8MA_SC, - GPIO_PIN_TYPE_STD); - - GPIOPinConfigure(BLUE_GPIO_PIN_CFG); - GPIOPinTypeTimer(BLUE_GPIO_BASE, BLUE_GPIO_PIN); - GPIOPadConfigSet(BLUE_GPIO_BASE, BLUE_GPIO_PIN, GPIO_STRENGTH_8MA_SC, - GPIO_PIN_TYPE_STD); - - GPIOPinConfigure(RED_GPIO_PIN_CFG); - GPIOPinTypeTimer(RED_GPIO_BASE, RED_GPIO_PIN); - GPIOPadConfigSet(RED_GPIO_BASE, RED_GPIO_PIN, GPIO_STRENGTH_8MA_SC, - GPIO_PIN_TYPE_STD); -} - -//***************************************************************************** -// -//! Disable the RGB LED by configuring the GPIO's as inputs. -//! -//! This function or RGBEnable should be called during application -//! initialization to configure the GPIO pins to which the LEDs are attached. -//! This function disables the timers and configures the GPIO pins as inputs -//! for minimum current draw. -//! -//! \return None. -// -//***************************************************************************** -void -RGBDisable(void) -{ - // - // Configure the GPIO pads as general purpose inputs. - // - GPIOPinTypeGPIOInput(RED_GPIO_BASE, RED_GPIO_PIN); - GPIOPinTypeGPIOInput(GREEN_GPIO_BASE, GREEN_GPIO_PIN); - GPIOPinTypeGPIOInput(BLUE_GPIO_BASE, BLUE_GPIO_PIN); - - // - // Stop the timer counting. - // - TimerDisable(RED_TIMER_BASE, TIMER_BOTH); - TimerDisable(GREEN_TIMER_BASE, TIMER_BOTH); - TimerDisable(BLUE_TIMER_BASE, TIMER_BOTH); -} - -//***************************************************************************** -// -//! Set the output color and intensity. -//! -//! \param pulRGBColor points to a three element array representing the -//! relative intensity of each color. Red is element 0, Green is element 1, -//! Blue is element 2. 0x0000 is off. 0xFFFF is fully on. -//! -//! \param fIntensity is used to scale the intensity of all three colors by -//! the same amount. fIntensity should be between 0.0 and 1.0. This scale -//! factor is applied to all three colors. -//! -//! This function should be called by the application to set the color and -//! intensity of the RGB LED. -//! -//! \return None. -// -//***************************************************************************** -void -RGBSet(volatile unsigned long * pulRGBColor, float fIntensity) -{ - RGBColorSet(pulRGBColor); - RGBIntensitySet(fIntensity); -} - -//***************************************************************************** -// -//! Set the output color. -//! -//! \param pulRGBColor points to a three element array representing the -//! relative intensity of each color. Red is element 0, Green is element 1, -//! Blue is element 2. 0x0000 is off. 0xFFFF is fully on. -//! -//! This function should be called by the application to set the color -//! of the RGB LED. -//! -//! \return None. -// -//***************************************************************************** -void -RGBColorSet(volatile unsigned long * pulRGBColor) -{ - unsigned long ulColor[3]; - unsigned long ulIndex; - - for(ulIndex=0; ulIndex < 3; ulIndex++) - { - g_ulColors[ulIndex] = pulRGBColor[ulIndex]; - ulColor[ulIndex] = (unsigned long) (((float) pulRGBColor[ulIndex]) * - g_fIntensity + 0.5f); - - if(ulColor[ulIndex] > 0xFFFF) - { - ulColor[ulIndex] = 0xFFFF; - } - } - - TimerMatchSet(RED_TIMER_BASE, RED_TIMER, ulColor[RED]); - TimerMatchSet(GREEN_TIMER_BASE, GREEN_TIMER, ulColor[GREEN]); - TimerMatchSet(BLUE_TIMER_BASE, BLUE_TIMER, ulColor[BLUE]); -} - -//***************************************************************************** -// -//! Set the current output intensity. -//! -//! \param fIntensity is used to scale the intensity of all three colors by -//! the same amount. fIntensity should be between 0.0 and 1.0. This scale -//! factor is applied individually to all three colors. -//! -//! This function should be called by the application to set the intensity -//! of the RGB LED. -//! -//! \return None. -// -//***************************************************************************** -void -RGBIntensitySet(float fIntensity) -{ - g_fIntensity = fIntensity; - RGBColorSet(g_ulColors); -} - -//***************************************************************************** -// -//! Get the output color. -//! -//! \param pulRGBColor points to a three element array representing the -//! relative intensity of each color. Red is element 0, Green is element 1, -//! Blue is element 2. 0x0000 is off. 0xFFFF is fully on. Caller must allocate -//! and pass a pointer to a three element array of unsigned longs. -//! -//! This function should be called by the application to get the current color -//! of the RGB LED. -//! -//! \return None. -// -//***************************************************************************** -void -RGBColorGet(unsigned long * pulRGBColor) -{ - unsigned long ulIndex; - - for(ulIndex=0; ulIndex < 3; ulIndex++) - { - pulRGBColor[ulIndex] = g_ulColors[ulIndex]; - } -} - -//***************************************************************************** -// -// Close the Doxygen group. -//! @} -// -//***************************************************************************** -- cgit v1.3.1