Removed old code.

git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@10777 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
Giovanni Di Sirio 2017-10-05 12:28:54 +00:00
parent d200baf21f
commit 093ea22716
5 changed files with 0 additions and 641 deletions

View File

@ -1,118 +0,0 @@
/*
ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
/**
* @file lis302dl.c
* @brief LIS302DL MEMS interface module through SPI code.
*
* @addtogroup lis302dl
* @{
*/
#include "hal.h"
#include "lis302dl.h"
/*===========================================================================*/
/* Driver local definitions. */
/*===========================================================================*/
/*===========================================================================*/
/* Driver exported variables. */
/*===========================================================================*/
/*===========================================================================*/
/* Driver local variables and types. */
/*===========================================================================*/
static uint8_t txbuf[2];
static uint8_t rxbuf[2];
/*===========================================================================*/
/* Driver local functions. */
/*===========================================================================*/
/*===========================================================================*/
/* Driver exported functions. */
/*===========================================================================*/
/**
* @brief Reads a register value.
* @pre The SPI interface must be initialized and the driver started.
*
* @param[in] spip pointer to the SPI initerface
* @param[in] reg register number
* @return The register value.
*/
uint8_t lis302dlReadRegister(SPIDriver *spip, uint8_t reg) {
spiSelect(spip);
txbuf[0] = 0x80 | reg;
txbuf[1] = 0xff;
spiExchange(spip, 2, txbuf, rxbuf);
spiUnselect(spip);
return rxbuf[1];
}
/**
* @brief Writes a value into a register.
* @pre The SPI interface must be initialized and the driver started.
*
* @param[in] spip pointer to the SPI initerface
* @param[in] reg register number
* @param[in] value the value to be written
*/
void lis302dlWriteRegister(SPIDriver *spip, uint8_t reg, uint8_t value) {
switch (reg) {
default:
/* Reserved register must not be written, according to the datasheet
this could permanently damage the device.*/
osalDbgAssert(FALSE, "reserved register");
case LIS302DL_WHO_AM_I:
case LIS302DL_HP_FILTER_RESET:
case LIS302DL_STATUS_REG:
case LIS302DL_OUTX:
case LIS302DL_OUTY:
case LIS302DL_OUTZ:
case LIS302DL_FF_WU_SRC1:
case LIS302DL_FF_WU_SRC2:
case LIS302DL_CLICK_SRC:
/* Read only registers cannot be written, the command is ignored.*/
return;
case LIS302DL_CTRL_REG1:
case LIS302DL_CTRL_REG2:
case LIS302DL_CTRL_REG3:
case LIS302DL_FF_WU_CFG1:
case LIS302DL_FF_WU_THS1:
case LIS302DL_FF_WU_DURATION1:
case LIS302DL_FF_WU_CFG2:
case LIS302DL_FF_WU_THS2:
case LIS302DL_FF_WU_DURATION2:
case LIS302DL_CLICK_CFG:
case LIS302DL_CLICK_THSY_X:
case LIS302DL_CLICK_THSZ:
case LIS302DL_CLICK_TIMELIMIT:
case LIS302DL_CLICK_LATENCY:
case LIS302DL_CLICK_WINDOW:
spiSelect(spip);
txbuf[0] = reg;
txbuf[1] = value;
spiSend(spip, 2, txbuf);
spiUnselect(spip);
}
}
/** @} */

View File

@ -1,26 +0,0 @@
/*
ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
/**
* @defgroup lis302dl Interface module for LIS302DL MEMS
*
* @brief Interface module for LIS302DL MEMS.
* @details This module implements a generic interface for the LIS302DL
* STMicroelectronics MEMS device. The communication is performed
* through a standard SPI driver.
*
* @ingroup accel
*/

View File

@ -1,93 +0,0 @@
/*
ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
/**
* @file lis302dl.h
* @brief LIS302DL MEMS interface module through SPI header.
*
* @addtogroup lis302dl
* @{
*/
#ifndef LIS302DL_H
#define LIS302DL_H
/*===========================================================================*/
/* Driver constants. */
/*===========================================================================*/
/**
* @name LIS302DL register names
* @{
*/
#define LIS302DL_WHO_AM_I 0x0F
#define LIS302DL_CTRL_REG1 0x20
#define LIS302DL_CTRL_REG2 0x21
#define LIS302DL_CTRL_REG3 0x22
#define LIS302DL_HP_FILTER_RESET 0x23
#define LIS302DL_STATUS_REG 0x27
#define LIS302DL_OUTX 0x29
#define LIS302DL_OUTY 0x2B
#define LIS302DL_OUTZ 0x2D
#define LIS302DL_FF_WU_CFG1 0x30
#define LIS302DL_FF_WU_SRC1 0x31
#define LIS302DL_FF_WU_THS1 0x32
#define LIS302DL_FF_WU_DURATION1 0x33
#define LIS302DL_FF_WU_CFG2 0x34
#define LIS302DL_FF_WU_SRC2 0x35
#define LIS302DL_FF_WU_THS2 0x36
#define LIS302DL_FF_WU_DURATION2 0x37
#define LIS302DL_CLICK_CFG 0x38
#define LIS302DL_CLICK_SRC 0x39
#define LIS302DL_CLICK_THSY_X 0x3B
#define LIS302DL_CLICK_THSZ 0x3C
#define LIS302DL_CLICK_TIMELIMIT 0x3D
#define LIS302DL_CLICK_LATENCY 0x3E
#define LIS302DL_CLICK_WINDOW 0x3F
/** @} */
/*===========================================================================*/
/* Driver pre-compile time settings. */
/*===========================================================================*/
/*===========================================================================*/
/* Derived constants and error checks. */
/*===========================================================================*/
/*===========================================================================*/
/* Driver data structures and types. */
/*===========================================================================*/
/*===========================================================================*/
/* Driver macros. */
/*===========================================================================*/
/*===========================================================================*/
/* External declarations. */
/*===========================================================================*/
#ifdef __cplusplus
extern "C" {
#endif
uint8_t lis302dlReadRegister(SPIDriver *spip, uint8_t reg);
void lis302dlWriteRegister(SPIDriver *spip, uint8_t reg, uint8_t value);
#ifdef __cplusplus
}
#endif
#endif /* LIS302DL_H */
/** @} */

View File

@ -1,310 +0,0 @@
/*
ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
/**
* @file lcd3310.c
* @brief Nokia 3310 LCD interface module through SPI code.
*
* @addtogroup lcd3310
* @{
*/
#include "ch.h"
#include "hal.h"
#include "lcd3310.h"
/*===========================================================================*/
/* Driver local definitions. */
/*===========================================================================*/
/*===========================================================================*/
/* Driver exported variables. */
/*===========================================================================*/
/*===========================================================================*/
/* Driver local variables and types. */
/*===========================================================================*/
const uint8_t Fonts8x5 [][LCD3310_FONT_X_SIZE] =
{
{ 0x00, 0x00, 0x00, 0x00, 0x00 }, /* space */
{ 0x00, 0x00, 0x2f, 0x00, 0x00 }, /* ! */
{ 0x00, 0x07, 0x00, 0x07, 0x00 }, /* " */
{ 0x14, 0x7f, 0x14, 0x7f, 0x14 }, /* # */
{ 0x24, 0x2a, 0x7f, 0x2a, 0x12 }, /* $ */
{ 0xc4, 0xc8, 0x10, 0x26, 0x46 }, /* % */
{ 0x36, 0x49, 0x55, 0x22, 0x50 }, /* & */
{ 0x00, 0x05, 0x03, 0x00, 0x00 }, /* ' */
{ 0x00, 0x1c, 0x22, 0x41, 0x00 }, /* ( */
{ 0x00, 0x41, 0x22, 0x1c, 0x00 }, /* ) */
{ 0x14, 0x08, 0x3E, 0x08, 0x14 }, /* * */
{ 0x08, 0x08, 0x3E, 0x08, 0x08 }, /* + */
{ 0x00, 0x00, 0x50, 0x30, 0x00 }, /* , */
{ 0x10, 0x10, 0x10, 0x10, 0x10 }, /* - */
{ 0x00, 0x60, 0x60, 0x00, 0x00 }, /* . */
{ 0x20, 0x10, 0x08, 0x04, 0x02 }, /* / */
{ 0x3E, 0x51, 0x49, 0x45, 0x3E }, /* 0 */
{ 0x00, 0x42, 0x7F, 0x40, 0x00 }, /* 1 */
{ 0x42, 0x61, 0x51, 0x49, 0x46 }, /* 2 */
{ 0x21, 0x41, 0x45, 0x4B, 0x31 }, /* 3 */
{ 0x18, 0x14, 0x12, 0x7F, 0x10 }, /* 4 */
{ 0x27, 0x45, 0x45, 0x45, 0x39 }, /* 5 */
{ 0x3C, 0x4A, 0x49, 0x49, 0x30 }, /* 6 */
{ 0x01, 0x71, 0x09, 0x05, 0x03 }, /* 7 */
{ 0x36, 0x49, 0x49, 0x49, 0x36 }, /* 8 */
{ 0x06, 0x49, 0x49, 0x29, 0x1E }, /* 9 */
{ 0x00, 0x36, 0x36, 0x00, 0x00 }, /* : */
{ 0x00, 0x56, 0x36, 0x00, 0x00 }, /* ; */
{ 0x08, 0x14, 0x22, 0x41, 0x00 }, /* < */
{ 0x14, 0x14, 0x14, 0x14, 0x14 }, /* = */
{ 0x00, 0x41, 0x22, 0x14, 0x08 }, /* > */
{ 0x02, 0x01, 0x51, 0x09, 0x06 }, /* ? */
{ 0x32, 0x49, 0x59, 0x51, 0x3E }, /* @ */
{ 0x7E, 0x11, 0x11, 0x11, 0x7E }, /* A */
{ 0x7F, 0x49, 0x49, 0x49, 0x36 }, /* B */
{ 0x3E, 0x41, 0x41, 0x41, 0x22 }, /* C */
{ 0x7F, 0x41, 0x41, 0x22, 0x1C }, /* D */
{ 0x7F, 0x49, 0x49, 0x49, 0x41 }, /* E */
{ 0x7F, 0x09, 0x09, 0x09, 0x01 }, /* F */
{ 0x3E, 0x41, 0x49, 0x49, 0x7A }, /* G */
{ 0x7F, 0x08, 0x08, 0x08, 0x7F }, /* H */
{ 0x00, 0x41, 0x7F, 0x41, 0x00 }, /* I */
{ 0x20, 0x40, 0x41, 0x3F, 0x01 }, /* J */
{ 0x7F, 0x08, 0x14, 0x22, 0x41 }, /* K */
{ 0x7F, 0x40, 0x40, 0x40, 0x40 }, /* L */
{ 0x7F, 0x02, 0x0C, 0x02, 0x7F }, /* M */
{ 0x7F, 0x04, 0x08, 0x10, 0x7F }, /* N */
{ 0x3E, 0x41, 0x41, 0x41, 0x3E }, /* O */
{ 0x7F, 0x09, 0x09, 0x09, 0x06 }, /* P */
{ 0x3E, 0x41, 0x51, 0x21, 0x5E }, /* Q */
{ 0x7F, 0x09, 0x19, 0x29, 0x46 }, /* R */
{ 0x46, 0x49, 0x49, 0x49, 0x31 }, /* S */
{ 0x01, 0x01, 0x7F, 0x01, 0x01 }, /* T */
{ 0x3F, 0x40, 0x40, 0x40, 0x3F }, /* U */
{ 0x1F, 0x20, 0x40, 0x20, 0x1F }, /* V */
{ 0x3F, 0x40, 0x38, 0x40, 0x3F }, /* W */
{ 0x63, 0x14, 0x08, 0x14, 0x63 }, /* X */
{ 0x07, 0x08, 0x70, 0x08, 0x07 }, /* Y */
{ 0x61, 0x51, 0x49, 0x45, 0x43 }, /* Z */
{ 0x00, 0x7F, 0x41, 0x41, 0x00 }, /* [ */
{ 0x55, 0x2A, 0x55, 0x2A, 0x55 }, /* \ */
{ 0x00, 0x41, 0x41, 0x7F, 0x00 }, /* ] */
{ 0x04, 0x02, 0x01, 0x02, 0x04 }, /* ^ */
{ 0x40, 0x40, 0x40, 0x40, 0x40 }, /* _ */
{ 0x00, 0x01, 0x02, 0x04, 0x00 }, /* ' */
{ 0x20, 0x54, 0x54, 0x54, 0x78 }, /* a */
{ 0x7F, 0x48, 0x44, 0x44, 0x38 }, /* b */
{ 0x38, 0x44, 0x44, 0x44, 0x20 }, /* c */
{ 0x38, 0x44, 0x44, 0x48, 0x7F }, /* d */
{ 0x38, 0x54, 0x54, 0x54, 0x18 }, /* e */
{ 0x08, 0x7E, 0x09, 0x01, 0x02 }, /* f */
{ 0x0C, 0x52, 0x52, 0x52, 0x3E }, /* g */
{ 0x7F, 0x08, 0x04, 0x04, 0x78 }, /* h */
{ 0x00, 0x44, 0x7D, 0x40, 0x00 }, /* i */
{ 0x20, 0x40, 0x44, 0x3D, 0x00 }, /* j */
{ 0x7F, 0x10, 0x28, 0x44, 0x00 }, /* k */
{ 0x00, 0x41, 0x7F, 0x40, 0x00 }, /* l */
{ 0x7C, 0x04, 0x18, 0x04, 0x78 }, /* m */
{ 0x7C, 0x08, 0x04, 0x04, 0x78 }, /* n */
{ 0x38, 0x44, 0x44, 0x44, 0x38 }, /* o */
{ 0x7C, 0x14, 0x14, 0x14, 0x08 }, /* p */
{ 0x08, 0x14, 0x14, 0x18, 0x7C }, /* q */
{ 0x7C, 0x08, 0x04, 0x04, 0x08 }, /* r */
{ 0x48, 0x54, 0x54, 0x54, 0x20 }, /* s */
{ 0x04, 0x3F, 0x44, 0x40, 0x20 }, /* t */
{ 0x3C, 0x40, 0x40, 0x20, 0x7C }, /* u */
{ 0x1C, 0x20, 0x40, 0x20, 0x1C }, /* v */
{ 0x3C, 0x40, 0x30, 0x40, 0x3C }, /* w */
{ 0x44, 0x28, 0x10, 0x28, 0x44 }, /* x */
{ 0x0C, 0x50, 0x50, 0x50, 0x3C }, /* y */
{ 0x44, 0x64, 0x54, 0x4C, 0x44 }, /* z */
{ 0x00, 0x08, 0x36, 0x41, 0x00 }, /* { */
{ 0x00, 0x00, 0x7F, 0x00, 0x00 }, /* | */
{ 0x00, 0x41, 0x36, 0x08, 0x00 }, /* } */
};
/*===========================================================================*/
/* Driver local functions. */
/*===========================================================================*/
/*===========================================================================*/
/* Driver exported functions. */
/*===========================================================================*/
/**
* @brief LCD driver initialization.
* @pre The SPI interface must be initialized and the driver started.
*
* @param[in] spip pointer to the SPI interface
*
*/
void lcd3310Init(SPIDriver *spip) {
/* Reset LCD */
palClearPad(LCD3310_RES_PORT, LCD3310_RES_PIN);
chThdSleepMilliseconds(15);
palSetPad(LCD3310_RES_PORT, LCD3310_RES_PIN);
chThdSleepMilliseconds(15);
/* Send configuration commands to LCD */
lcd3310WriteByte(spip, 0x21, LCD3310_SEND_CMD); /* LCD extended commands */
lcd3310WriteByte(spip, 0xC8, LCD3310_SEND_CMD); /* Set LCD Vop (Contrast) */
lcd3310WriteByte(spip, 0x05, LCD3310_SEND_CMD); /* Set start line S6 to 1 TLS8204 */
lcd3310WriteByte(spip, 0x40, LCD3310_SEND_CMD); /* Set start line S[5:0] to 0x00 TLS8204 */
lcd3310WriteByte(spip, 0x12, LCD3310_SEND_CMD); /* LCD bias mode 1:68. */
lcd3310WriteByte(spip, 0x20, LCD3310_SEND_CMD); /* LCD standard Commands, horizontal addressing mode. */
lcd3310WriteByte(spip, 0x08, LCD3310_SEND_CMD); /* LCD blank */
lcd3310WriteByte(spip, 0x0C, LCD3310_SEND_CMD); /* LCD in normal mode. */
lcd3310Clear(spip); /* Clear LCD */
}
/**
* @brief Write byte to LCD driver.
* @pre The LCD driver must be initialized.
*
* @param[in] spip pointer to the SPI interface
* @param[in] data data to write
* @param[in] cd select between command or data
*/
void lcd3310WriteByte(SPIDriver *spip, uint8_t data, uint8_t cd) {
spiSelect(spip);
if(cd == LCD3310_SEND_DATA) {
palSetPad(LCD3310_DC_PORT, LCD3310_DC_PIN);
}
else {
palClearPad(LCD3310_DC_PORT, LCD3310_DC_PIN);
}
spiSend(spip, 1, &data); // change to normal spi send
spiUnselect(spip);
}
/**
* @brief Clear LCD
* @pre The LCD driver must be initialized.
*
* @param[in] spip pointer to the SPI interface
*/
void lcd3310Clear(SPIDriver *spip) { // ok
uint32_t i, j;
for (i = 0; i < LCD3310_Y_RES/LCD3310_FONT_Y_SIZE; i++) {
lcd3310SetPosXY(spip, 0, i);
for (j = 0; j < LCD3310_X_RES; j++)
lcd3310WriteByte(spip, 0x00, LCD3310_SEND_DATA);
}
}
/**
* @brief Set position
* @pre The LCD driver must be initialized.
*
* @param[in] spip pointer to the SPI interface
* @param[in] x column address in LCD DDRAM, 0 to 83
* @param[in] y page address in LCD DDRAM, 0 to 5
*/
void lcd3310SetPosXY(SPIDriver *spip, uint8_t x, uint8_t y) {
if (y > LCD3310_Y_RES/LCD3310_FONT_Y_SIZE) return;
if (x > LCD3310_X_RES) return;
lcd3310WriteByte(spip, 0x80 | x, LCD3310_SEND_CMD); /* Set x position */
lcd3310WriteByte(spip, 0x40 | y, LCD3310_SEND_CMD); /* Set y position */
}
/**
* @brief Write char
* @pre The LCD driver must be initialized.
*
* @param[in] spip pointer to the SPI interface
* @param[in] ch char
*/
void lcd3310WriteChar(SPIDriver *spip, uint8_t ch) {
uint8_t i;
for ( i = 0; i < LCD3310_FONT_X_SIZE; i++ ){
lcd3310WriteByte(spip, Fonts8x5[ch - 32][i], LCD3310_SEND_DATA);
}
}
/**
* @brief Set LCD contrast.
* @pre The LCD driver must be initialized.
*
* @param[in] spip pointer to the SPI interface
* @param[in] contrast LCD contrast value
*/
void lcd3310Contrast (SPIDriver *spip, uint8_t contrast) {
lcd3310WriteByte(spip, 0x21, LCD3310_SEND_CMD); /* LCD Extended Commands */
lcd3310WriteByte(spip, 0x80 | contrast, LCD3310_SEND_CMD); /* Set LCD Vop (Contrast) */
lcd3310WriteByte(spip, 0x20, LCD3310_SEND_CMD); /* LCD Standard Commands, horizontal addressing mode */
}
/**
* @brief Write text
* @pre The LCD driver must be initialized.
*
* @param[in] spip pointer to the SPI interface
* @param[in] strp pointer to text
*/
void lcd3310WriteText(SPIDriver *spip, const uint8_t * strp) {
while ( *strp ) {
lcd3310WriteChar(spip, *strp);
strp++;
}
}
/**
* @brief Rotate text
* @pre The LCD driver must be initialized.
*
* @param[in] spip pointer to the SPI interface
* @param[in] strp pointer to text
* @param[in] offset text offset
*/
void lcd3310RotateText(SPIDriver *spip, const uint8_t * strp, uint8_t offset) {
uint8_t i;
uint8_t n;
uint8_t m;
for(n = 0; strp[n] != '\0'; n++); /* Count number of char */
if (offset >= n)
return;
for (i = 0; i < LCD3310_X_RES/LCD3310_FONT_X_SIZE; i++) {
m = i + offset;
if ( m < n)
lcd3310WriteChar(spip, strp[m]);
else
lcd3310WriteChar(spip, strp[m - n]);
}
}
/** @} */

View File

@ -1,94 +0,0 @@
/*
ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
/**
* @file lcd3310.h
* @brief Nokia 3310 LCD interface module through SPI code.
*
* @addtogroup lcd3310
* @{
*/
#ifndef LCD3310_H
#define LCD3310_H
/*===========================================================================*/
/* Driver constants. */
/*===========================================================================*/
#define LCD3310_X_RES 84
#define LCD3310_Y_RES 48
#define LCD3310_FONT_X_SIZE 5
#define LCD3310_FONT_Y_SIZE 8
#define LCD3310_SEND_CMD 0
#define LCD3310_SEND_DATA 1
/*===========================================================================*/
/* Driver pre-compile time settings. */
/*===========================================================================*/
/*===========================================================================*/
/* Derived constants and error checks. */
/*===========================================================================*/
#if !defined(LCD3310_RES_PIN)
#error "LCD3310_RES_PIN not defined!!!"
#endif
#if !defined(LCD3310_RES_PORT)
#error "LCD3310_RES_PORT not defined!!!"
#endif
#if !defined(LCD3310_DC_PIN)
#error "LCD3310_DC_PIN not defined!!!"
#endif
#if!defined(LCD3310_DC_PORT)
#error "LCD3310_DC_PORT not defined!!!"
#endif
/*===========================================================================*/
/* Driver data structures and types. */
/*===========================================================================*/
/*===========================================================================*/
/* Driver macros. */
/*===========================================================================*/
/*===========================================================================*/
/* External declarations. */
/*===========================================================================*/
#ifdef __cplusplus
extern "C" {
#endif
void lcd3310Init(SPIDriver *spip);
void lcd3310WriteByte(SPIDriver *spip, uint8_t data, uint8_t cd);
void lcd3310Contrast(SPIDriver *spip, uint8_t contrast);
void lcd3310Clear(SPIDriver *spip);
void lcd3310SetPosXY(SPIDriver *spip, uint8_t x, uint8_t y);
void lcd3310WriteChar (SPIDriver *spip, uint8_t ch);
void lcd3310WriteText(SPIDriver *spip, const uint8_t * strp);
void lcd3310RotateText(SPIDriver *spip, const uint8_t * strp, uint8_t offset);
#ifdef __cplusplus
}
#endif
#endif /* LCD3310_H */
/** @} */