|
|
- /* --COPYRIGHT--,BSD
- * Copyright (c) 2013, Texas Instruments Incorporated
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * * Neither the name of Texas Instruments Incorporated nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * --/COPYRIGHT--*/
-
- //*****************************************************************************
- //
- // HAL_MSP-EXP430G2_Sharp96x96.h - Prototypes for the Sharp96x96 LCD display driver.
- // There is no output from Sharp96x96 LCD.
- //
- // MSP430G2XX LCD Sharp96x96
- // ----------------- -----------------
- // | UCB0CLK/P1.5|---------> |SCLK EXTCOMIN|-- 0
- // /|\| | | |
- // | | UCB0SIMO/P1.7|---------> |SI EXTMODE|-- 0
- // --|RST | | |
- // | UCB0STE/P1.4|---------> |SCS |
- // | | | |
- // | P1.3|---------> |DISP |
- // | | | |
- // | | | |
- // | | -----------------
- //
- //*****************************************************************************
- #include <stdint.h>
-
- #ifndef __HAL_MSP-EXP430G2_SHARPLCD_H__
- #define __HAL_MSP-EXP430G2_SHARPLCD_H__
-
- //*****************************************************************************
- //
- // User Configuration for the LCD Driver
- //
- //*****************************************************************************
-
-
- // Ports from MSP430 connected to LCD
- #define LCD_MOSI_PORT P1OUT
- #define LCD_SCLK_PORT P1OUT
- #define LCD_POWER_DISP_PORT P1OUT
- #define LCD_POWER_DISP_DIR P1DIR
- #define LCD_SCS_PORT P1OUT
- #define LCD_SCS_DIR P1DIR
-
- // Pins from MSP430 connected to LCD
- #define LCD_MOSI_PIN BIT7
- #define LCD_MOSI_PORT_SEL1 P1SEL
- #define LCD_MOSI_PORT_SEL2 P1SEL2
- #define LCD_SCLK_PIN BIT5
- #define LCD_SCLK_PORT_SEL1 P1SEL
- #define LCD_SCLK_PORT_SEL2 P1SEL2
- #define LCD_POWER_PIN BIT0
- #define LCD_DISP_PIN BIT3
- #define LCD_SCS_PIN BIT4
-
- // LCD Screen Dimensions
- #define LCD_VERTICAL_MAX 96
- #define LCD_HORIZONTAL_MAX 96
-
- // Non-volatile Memory used to store DisplayBuffer
- #define NON_VOLATILE_MEMORY_BUFFER
- #ifdef NON_VOLATILE_MEMORY_BUFFER
- #define USE_FLASH_BUFFER
- #define NON_VOLATILE_MEMORY_ADDRESS 0xf400
- #endif //NON_VOLATILE_MEMORY_BUFFER
-
- //*****************************************************************************
- //
- // Clears CS line
- //
- // This macro allows to clear the Chip Select (CS) line
- //
- // \return None
- //
- //*****************************************************************************
-
- #define ClearCS() \
- LCD_SCS_PORT &= ~LCD_SCS_PIN;
-
- //*****************************************************************************
- //
- // Set CS line
- //
- // This macro allows to set the Chip Select (CS) line
- //
- // \return None
- //
- //*****************************************************************************
-
- #define SetCS() \
- LCD_SCS_PORT |= LCD_SCS_PIN;
-
- //*****************************************************************************
- //
- // Waits until the SPI communication with the LCD is finished a command to
- // the LCD Driver
- //
- // \param None
- //
- // \return None
- //*****************************************************************************
-
- #define WaitUntilLcdWriteFinished() \
- while (UCB0STAT & UCBUSY)
-
-
- //*****************************************************************************
- //
- // Writes command or data to the LCD Driver
- //
- // \param ucCmdData is the 8 or 16 bit command to send to the LCD driver
- // Uses the SET_LCD_DATA macro
- //
- // \return None
- //
- //*****************************************************************************
-
- #define WriteCmdData(ucCmdData) \
- do \
- { \
- while (!(IFG2 & UCB0TXIFG)); \
- UCB0TXBUF = ucCmdData; \
- } \
- while(0)
-
- //*****************************************************************************
- //
- // Unlocks FLASH controller
- //
- // This macro unlocks flash memory controller.
- //
- // \return None
- //
- //*****************************************************************************
-
- #define UnlockFlashMemory() \
- FCTL3 = FWKEY
-
-
- //*****************************************************************************
- //
- // Sets access right on FLASH controller
- //
- // \param uiAccesType defines access right. Valid parameters:
- // WRT.- Set Write access on flash controller
- // ERASE.- Sets Erase
- //
- // This macro sets the proper write or erase access on FLASH controller.
- // \return None
- //
- //*****************************************************************************
-
- #define SetFlashAccessRight(uiAccessType) \
- FCTL1 = FWKEY + uiAccessType
-
- //*****************************************************************************
- //
- // Removes access right on FLASH controller
- //
- // This macro removes access rights on FLASH controller.
- // \return None
- //
- //*****************************************************************************
-
- #define RemoveFlashAccessRight() \
- FCTL1 = FWKEY
-
- //*****************************************************************************
- //
- // Locks FLASH controller
- //
- // This macro locks flash memory controller.
- //
- // \return None
- //
- //*****************************************************************************
-
- #define LockFlashMemory() \
- FCTL3 = FWKEY + LOCK
-
- //*****************************************************************************
- //
- // Prepare to write memory
- //
- // This macro unlocks flash memory controller and
- // sets access right on flash controller
- //
- // \return None
- //
- //*****************************************************************************
- #define PrepareMemoryWrite() \
- UnlockFlashMemory(); \
- SetFlashAccessRight(WRT)
-
- //*****************************************************************************
- //
- // Finish memory writing
- //
- // This macro removes access rights on flash controller and
- // locks flash memory controller.
- //
- // \return None
- //
- //*****************************************************************************
- #define FinishMemoryWrite() \
- RemoveFlashAccessRight(); \
- LockFlashMemory()
-
- //*****************************************************************************
- //
- // Prototypes for the globals exported by this driver.
- //
- //*****************************************************************************
- extern void LCDInit(void);
- extern void InitializeDisplayBuffer(void *pvDisplayData, uint8_t ucValue);
- #endif // __HAL_MSP-EXP430G2_SHARPLCD_H__
|