/* --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 #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__