?lang_form?
?lang_select?
?lang_submit?
?lang_endform?
{HEADER END}
{FILE START}
library
?curdirlinks? - Rev 6
?prevdifflink? - Blame - ?getfile?
/*! \file spyglass.h \brief Spyglass Control Panel UI Board Driver. */
//*****************************************************************************
//
// File Name : 'spyglass.h'
// Title : Spyglass Control Panel UI Board Driver
// Author : Pascal Stang - Copyright (C) 2005
// Created : 7/20/2005
// Revised : 7/23/2005
// Version : 0.9
// Target MCU : Atmel AVR series
// Editor Tabs : 4
//
/// \ingroup driver_hw
/// \defgroup spyglass Spyglass Control Panel UI Board Driver (spyglass.c)
/// \code
/// #include "lcd.h"
/// #include "i2c.h"
/// #include "spyglass.h"
/// \endcode
/// \par Overview
/// This library supports the 'Spyglass' I2C-controlled User Interface
/// board. The Spyglass board has a standard 4x20 character LCD and a
/// convenient array of pushbuttons for a user interface. The board also
/// has a user-controllable piezo beeper. All of these functions are
/// accessible via I2C bus, making it possible to have a complete user
/// interface with just 4 wires (2 I/O and 2 power wires). The Spyglass
/// board runs on 5V power.
///
/// \par Connections:
/// - Connect power to the +5V and ground pins.
/// - Connect the SCL/SDA pins to the corresponding SCL/SDA pins of
/// your processor's I2C bus.
/// - If you wish to use the beeper, also connect +5V to pin 8.
///
/// \code
/// SPYGLASS PINOUT for 10-pin I/O header:
///
/// ----
/// +5V - 1 |++| 2 - +5V
/// SCL - 3 |++| 4 - GND
/// SDA - 5 |++| 6 - GND
/// 7 |++| 8 - BEEPER PWR (+5V)
/// 9 |++| 10
/// ----
/// \endcode
//
// This code is distributed under the GNU Public License
// which can be found at http://www.gnu.org/licenses/gpl.txt
//
//*****************************************************************************
//@{
#ifndef SPYGLASS_H
#define SPYGLASS_H
// defines
// Base I2C node addresses
#define PCF8574_I2C_BASE_ADDR 0x40
#define MAX517_I2C_BASE_ADDR 0x58
// PCF8574 node addresses
#define PCF_NODE_BUTTONS 0x00
#define PCF_NODE_LCD_DATA 0x01
#define PCF_NODE_CONTROL 0x02
// Control node bit-defines
#define SPYGLASS_LED0 0x01
#define SPYGLASS_LED1 0x02
#define SPYGLASS_BEEPER 0x04
#define SPYGLASS_LCD_RS 0x20
#define SPYGLASS_LCD_RW 0x40
#define SPYGLASS_LCD_E 0x80
// map lcd.c commands to spyglass.c LCD commands
#define lcdInit spyglassLcdInit
#define lcdHome spyglassLcdHome
#define lcdClear spyglassLcdClear
#define lcdGotoXY spyglassLcdGotoXY
#define lcdDataWrite spyglassLcdWriteChar
// functions
//! initialize the I2C bus for communication with the spyglass UI.
void spyglassInit(void);
// *********** MISC INPUT/OUTPUT commands ***********
//! Read the state of pushbuttons on the spyglass UI.
/// Returns an 8-bit number representing the state of buttons S1-S7 in bits 0-6 respectively.
/// - '0' bit value = button not pressed
/// - '1' bit value = button is pressed
u08 spyglassGetPushbuttons(void);
//! Sets the state of LEDs on the spyglass UI.
/// Argument is a 2-bit number representing the desired state of LEDs D2 & D3 respectively.
/// - '0' bit value = LED off
/// - '1' bit value = LED on
void spyglassSetLeds(u08 leds);
//! Sets the state of the beeper on the spyglass UI.
/// - '0' state => beeper off
/// - '1' state => beeper on
void spyglassSetBeeper(u08 state);
//! Sets the contrast voltage of the spyglass LCD.
/// Lower numbers are darker contrast, higher numbers are lighter contrast.
u08 spyglassSetLcdContrast(u08 contrast);
// *********** LCD commands ***********
//! Initialize LCD for operation.
void spyglassLcdInit(void);
//! Set write/cursor position to upper left.
void spyglassLcdHome(void);
//! Clear LCD display.
void spyglassLcdClear(void);
//! Set write/cursor posision on LCD display (x=col, y=line).
void spyglassLcdGotoXY(u08 x, u08 y);
//! Write control or display data to LCD.
void spyglassLcdWrite(u08 rs, u08 data);
//! Write character to LCD.
void spyglassLcdWriteChar(u08 c);
// *********** LOW-LEVEL ACCESS ***********
//! Write I/O Data to PCF8574 I2C<->Digital I/O chip.
u08 pcf8574Write(u08 nodeAddr, u08 data);
//! Read I/O Data from PCF8574 I2C<->Digital I/O chip.
u08 pcf8574Read(u08 nodeAddr);
#endif
//@}
|
{FILE END}
{FOOTER START}
Powered by WebSVN v2.8.3