diff options
| author | Yuval Adam <yuv.adm@gmail.com> | 2012-11-07 23:18:51 +0200 |
|---|---|---|
| committer | Yuval Adam <yuv.adm@gmail.com> | 2012-11-07 23:18:51 +0200 |
| commit | 3a282de9331ea261eeadca0dd36c0527f173dd4c (patch) | |
| tree | 54ed2a24f937cafa83f858cb17a910fc68f4cdd8 /boards | |
| parent | 14d4bc5c95ef976b00444fd56aec8c1c3ba785bd (diff) | |
Move RGB and button drivers 2 dirs up
Diffstat (limited to 'boards')
| -rw-r--r-- | boards/ek-lm4f120xl/drivers/buttons.c | 193 | ||||
| -rw-r--r-- | boards/ek-lm4f120xl/drivers/buttons.h | 96 | ||||
| -rw-r--r-- | boards/ek-lm4f120xl/drivers/rgb.c | 298 | ||||
| -rw-r--r-- | boards/ek-lm4f120xl/drivers/rgb.h | 143 |
4 files changed, 0 insertions, 730 deletions
diff --git a/boards/ek-lm4f120xl/drivers/buttons.c b/boards/ek-lm4f120xl/drivers/buttons.c deleted file mode 100644 index 4415168..0000000 --- a/boards/ek-lm4f120xl/drivers/buttons.c +++ /dev/null @@ -1,193 +0,0 @@ -//*****************************************************************************
-//
-// buttons.c - Evaluation board driver for push buttons.
-//
-// 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_gpio.h"
-#include "driverlib/sysctl.h"
-#include "driverlib/rom.h"
-#include "driverlib/pin_map.h"
-#include "driverlib/gpio.h"
-#include "drivers/buttons.h"
-
-//*****************************************************************************
-//
-//! \addtogroup buttons_api
-//! @{
-//
-//*****************************************************************************
-
-//*****************************************************************************
-//
-// Holds the current, debounced state of each button. A 0 in a bit indicates
-// that that button is currently pressed, otherwise it is released.
-// We assume that we start with all the buttons released (though if one is
-// pressed when the application starts, this will be detected).
-//
-//*****************************************************************************
-static unsigned char g_ucButtonStates = ALL_BUTTONS;
-
-//*****************************************************************************
-//
-//! Polls the current state of the buttons and determines which have changed.
-//!
-//! \param pucDelta points to a character that will be written to indicate
-//! which button states changed since the last time this function was called.
-//! This value is derived from the debounced state of the buttons.
-//! \param pucRawState points to a location where the raw button state will
-//! be stored.
-//!
-//! This function should be called periodically by the application to poll the
-//! pushbuttons. It determines both the current debounced state of the buttons
-//! and also which buttons have changed state since the last time the function
-//! was called.
-//!
-//! In order for button debouncing to work properly, this function should be
-//! caled at a regular interval, even if the state of the buttons is not needed
-//! that often.
-//!
-//! If button debouncing is not required, the the caller can pass a pointer
-//! for the \e pucRawState parameter in order to get the raw state of the
-//! buttons. The value returned in \e pucRawState will be a bit mask where
-//! a 1 indicates the buttons is pressed.
-//!
-//! \return Returns the current debounced state of the buttons where a 1 in the
-//! button ID's position indicates that the button is pressed and a 0
-//! indicates that it is released.
-//
-//*****************************************************************************
-unsigned char
-ButtonsPoll(unsigned char *pucDelta, unsigned char *pucRawState)
-{
- unsigned long ulDelta;
- unsigned long ulData;
- static unsigned char ucSwitchClockA = 0;
- static unsigned char ucSwitchClockB = 0;
-
- //
- // Read the raw state of the push buttons. Save the raw state
- // (inverting the bit sense) if the caller supplied storage for the
- // raw value.
- //
- ulData = (ROM_GPIOPinRead(BUTTONS_GPIO_BASE, ALL_BUTTONS));
- if(pucRawState)
- {
- *pucRawState = (unsigned char)~ulData;
- }
-
- //
- // Determine the switches that are at a different state than the debounced
- // state.
- //
- ulDelta = ulData ^ g_ucButtonStates;
-
- //
- // Increment the clocks by one.
- //
- ucSwitchClockA ^= ucSwitchClockB;
- ucSwitchClockB = ~ucSwitchClockB;
-
- //
- // Reset the clocks corresponding to switches that have not changed state.
- //
- ucSwitchClockA &= ulDelta;
- ucSwitchClockB &= ulDelta;
-
- //
- // Get the new debounced switch state.
- //
- g_ucButtonStates &= ucSwitchClockA | ucSwitchClockB;
- g_ucButtonStates |= (~(ucSwitchClockA | ucSwitchClockB)) & ulData;
-
- //
- // Determine the switches that just changed debounced state.
- //
- ulDelta ^= (ucSwitchClockA | ucSwitchClockB);
-
- //
- // Store the bit mask for the buttons that have changed for return to
- // caller.
- //
- if(pucDelta)
- {
- *pucDelta = (unsigned char)ulDelta;
- }
-
- //
- // Return the debounced buttons states to the caller. Invert the bit
- // sense so that a '1' indicates the button is pressed, which is a
- // sensible way to interpret the return value.
- //
- return(~g_ucButtonStates);
-}
-
-//*****************************************************************************
-//
-//! Initializes the GPIO pins used by the board pushbuttons.
-//!
-//! This function must be called during application initialization to
-//! configure the GPIO pins to which the pushbuttons are attached. It enables
-//! the port used by the buttons and configures each button GPIO as an input
-//! with a weak pull-up.
-//!
-//! \return None.
-//
-//*****************************************************************************
-void
-ButtonsInit(void)
-{
- //
- // Enable the GPIO port to which the pushbuttons are connected.
- //
- ROM_SysCtlPeripheralEnable(BUTTONS_GPIO_PERIPH);
-
- //
- // Unlock PF0 so we can change it to a GPIO input
- // Once we have enabled (unlocked) the commit register then re-lock it
- // to prevent further changes. PF0 is muxed with NMI thus a special case.
- //
- HWREG(BUTTONS_GPIO_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY_DD;
- HWREG(BUTTONS_GPIO_BASE + GPIO_O_CR) |= 0x01;
- HWREG(BUTTONS_GPIO_BASE + GPIO_O_LOCK) = 0;
-
- //
- // Set each of the button GPIO pins as an input with a pull-up.
- //
- ROM_GPIODirModeSet(BUTTONS_GPIO_BASE, ALL_BUTTONS, GPIO_DIR_MODE_IN);
- ROM_GPIOPadConfigSet(BUTTONS_GPIO_BASE, ALL_BUTTONS,
- GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU);
-
- //
- // Initialize the debounced button state with the current state read from
- // the GPIO bank.
- //
- g_ucButtonStates = ROM_GPIOPinRead(BUTTONS_GPIO_BASE, ALL_BUTTONS);
-}
-
-//*****************************************************************************
-//
-// Close the Doxygen group.
-//! @}
-//
-//*****************************************************************************
diff --git a/boards/ek-lm4f120xl/drivers/buttons.h b/boards/ek-lm4f120xl/drivers/buttons.h deleted file mode 100644 index 416125a..0000000 --- a/boards/ek-lm4f120xl/drivers/buttons.h +++ /dev/null @@ -1,96 +0,0 @@ -//*****************************************************************************
-//
-// buttons.h - Prototypes for the evaluation board buttons driver.
-//
-// 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.
-//
-//*****************************************************************************
-
-#ifndef __BUTTONS_H__
-#define __BUTTONS_H__
-
-//*****************************************************************************
-//
-// Defines for the hardware resources used by the pushbuttons.
-//
-// The switches are on the following ports/pins:
-//
-// PF4 - Left Button
-// PF0 - Right Button
-//
-// The switches tie the GPIO to ground, so the GPIOs need to be configured
-// with pull-ups, and a value of 0 means the switch is pressed.
-//
-//*****************************************************************************
-#define BUTTONS_GPIO_PERIPH SYSCTL_PERIPH_GPIOF
-#define BUTTONS_GPIO_BASE GPIO_PORTF_BASE
-
-#define NUM_BUTTONS 2
-#define LEFT_BUTTON GPIO_PIN_4
-#define RIGHT_BUTTON GPIO_PIN_0
-
-#define ALL_BUTTONS (LEFT_BUTTON | RIGHT_BUTTON)
-
-//*****************************************************************************
-//
-// Useful macros for detecting button events.
-//
-//*****************************************************************************
-#define BUTTON_PRESSED(button, buttons, changed) \
- (((button) & (changed)) && ((button) & (buttons)))
-
-#define BUTTON_RELEASED(button, buttons, changed) \
- (((button) & (changed)) && !((button) & (buttons)))
-
-//*****************************************************************************
-//
-// If building with a C++ compiler, make all of the definitions in this header
-// have a C binding.
-//
-//*****************************************************************************
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-//*****************************************************************************
-//
-// Functions exported from buttons.c
-//
-//*****************************************************************************
-extern void ButtonsInit(void);
-extern unsigned char ButtonsPoll(unsigned char *pucDelta,
- unsigned char *pucRaw);
-
-//*****************************************************************************
-//
-// Mark the end of the C bindings section for C++ compilers.
-//
-//*****************************************************************************
-#ifdef __cplusplus
-}
-#endif
-
-//*****************************************************************************
-//
-// Prototypes for the globals exported by this driver.
-//
-//*****************************************************************************
-
-#endif // __BUTTONS_H__
diff --git a/boards/ek-lm4f120xl/drivers/rgb.c b/boards/ek-lm4f120xl/drivers/rgb.c deleted file mode 100644 index f3107f2..0000000 --- a/boards/ek-lm4f120xl/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.
-//! @}
-//
-//*****************************************************************************
diff --git a/boards/ek-lm4f120xl/drivers/rgb.h b/boards/ek-lm4f120xl/drivers/rgb.h deleted file mode 100644 index 27d2276..0000000 --- a/boards/ek-lm4f120xl/drivers/rgb.h +++ /dev/null @@ -1,143 +0,0 @@ -//*****************************************************************************
-//
-// rgb.h - Prototypes for the evaluation board RGB LED driver.
-//
-// 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.
-//
-//*****************************************************************************
-
-#ifndef __RGBLED_H__
-#define __RGBLED_H__
-
-//*****************************************************************************
-//
-// Defines for the hardware resources used by the pushbuttons.
-//
-// The switches are on the following ports/pins:
-//
-// PF1 - RED (632 nanometer)
-// PF2 - GREEN (518 nanometer)
-// PF3 - BLUE (465 nanometer)
-
-//
-// The RGB LED is tied up to 5V but since the lowest Vf is 1.75 we can still
-// use a General Purpose Timer in pulse out mode.
-//
-//*****************************************************************************
-
-//
-// Indexes into the array of colors
-//
-#define RED 0
-#define BLUE 2
-#define GREEN 1
-
-
-//
-// Ratio for percent of full on that should be "true" white.
-//
-#define RED_WHITE_BALANCE 0.497f
-#define GREEN_WHITE_BALANCE 0.6f
-#define BLUE_WHITE_BALANCE 1.0f
-
-//
-// GPIO, Timer, Peripheral, and Pin assignments for the colors
-//
-#define RED_GPIO_PERIPH SYSCTL_PERIPH_GPIOF
-#define RED_TIMER_PERIPH SYSCTL_PERIPH_TIMER0
-#define BLUE_GPIO_PERIPH SYSCTL_PERIPH_GPIOF
-#define BLUE_TIMER_PERIPH SYSCTL_PERIPH_TIMER1
-#define GREEN_GPIO_PERIPH SYSCTL_PERIPH_GPIOF
-#define GREEN_TIMER_PERIPH SYSCTL_PERIPH_TIMER1
-
-
-#define RED_GPIO_BASE GPIO_PORTF_BASE
-#define RED_TIMER_BASE TIMER0_BASE
-#define BLUE_GPIO_BASE GPIO_PORTF_BASE
-#define BLUE_TIMER_BASE TIMER1_BASE
-#define GREEN_GPIO_BASE GPIO_PORTF_BASE
-#define GREEN_TIMER_BASE TIMER1_BASE
-
-#define RED_GPIO_PIN GPIO_PIN_1
-#define BLUE_GPIO_PIN GPIO_PIN_2
-#define GREEN_GPIO_PIN GPIO_PIN_3
-
-
-#define RED_GPIO_PIN_CFG GPIO_PF1_T0CCP1
-#define BLUE_GPIO_PIN_CFG GPIO_PF2_T1CCP0
-#define GREEN_GPIO_PIN_CFG GPIO_PF3_T1CCP1
-
-#define RED_TIMER_CFG TIMER_CFG_B_PWM
-#define BLUE_TIMER_CFG TIMER_CFG_A_PWM
-#define GREEN_TIMER_CFG TIMER_CFG_B_PWM
-
-#define RED_TIMER TIMER_B
-#define BLUE_TIMER TIMER_A
-#define GREEN_TIMER TIMER_B
-
-
-//*****************************************************************************
-//
-// Useful macros
-//
-//*****************************************************************************
-
-//*****************************************************************************
-//
-// If building with a C++ compiler, make all of the definitions in this header
-// have a C binding.
-//
-//*****************************************************************************
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-//*****************************************************************************
-//
-// Functions exported from rgb.c
-//
-//*****************************************************************************
-extern void RGBInit(unsigned long ulEnable);
-
-extern void RGBEnable(void);
-extern void RGBDisable(void);
-extern void RGBSet(volatile unsigned long * pulRGBColor, float fIntensity);
-extern void RGBColorSet(volatile unsigned long * pulRGBColor);
-
-extern void RGBIntensitySet(float fIntensity);
-
-extern void RGBGet(unsigned long * pulRGBColor, float * pfIntensity);
-
-//*****************************************************************************
-//
-// Mark the end of the C bindings section for C++ compilers.
-//
-//*****************************************************************************
-#ifdef __cplusplus
-}
-#endif
-
-//*****************************************************************************
-//
-// Prototypes for the globals exported by this driver.
-//
-//*****************************************************************************
-
-#endif // __RGBLED_H__
|
