?lang_form? ?lang_select? ?lang_submit? ?lang_endform?
{HEADER END}
{BLAME START}

library

?curdirlinks? -

Blame information for rev 6

Line No. Rev Author Line
1 6 kaklik /*! \file spyglass.h \brief Spyglass Control Panel UI Board Driver. */
2 //*****************************************************************************
3 //
4 // File Name : 'spyglass.h'
5 // Title : Spyglass Control Panel UI Board Driver
6 // Author : Pascal Stang - Copyright (C) 2005
7 // Created : 7/20/2005
8 // Revised : 7/23/2005
9 // Version : 0.9
10 // Target MCU : Atmel AVR series
11 // Editor Tabs : 4
12 //
13 /// \ingroup driver_hw
14 /// \defgroup spyglass Spyglass Control Panel UI Board Driver (spyglass.c)
15 /// \code
16 /// #include "lcd.h"
17 /// #include "i2c.h"
18 /// #include "spyglass.h"
19 /// \endcode
20 /// \par Overview
21 /// This library supports the 'Spyglass' I2C-controlled User Interface
22 /// board. The Spyglass board has a standard 4x20 character LCD and a
23 /// convenient array of pushbuttons for a user interface. The board also
24 /// has a user-controllable piezo beeper. All of these functions are
25 /// accessible via I2C bus, making it possible to have a complete user
26 /// interface with just 4 wires (2 I/O and 2 power wires). The Spyglass
27 /// board runs on 5V power.
28 ///
29 /// \par Connections:
30 /// - Connect power to the +5V and ground pins.
31 /// - Connect the SCL/SDA pins to the corresponding SCL/SDA pins of
32 /// your processor's I2C bus.
33 /// - If you wish to use the beeper, also connect +5V to pin 8.
34 ///
35 /// \code
36 /// SPYGLASS PINOUT for 10-pin I/O header:
37 ///
38 /// ----
39 /// +5V - 1 |++| 2 - +5V
40 /// SCL - 3 |++| 4 - GND
41 /// SDA - 5 |++| 6 - GND
42 /// 7 |++| 8 - BEEPER PWR (+5V)
43 /// 9 |++| 10
44 /// ----
45 /// \endcode
46 //
47 // This code is distributed under the GNU Public License
48 // which can be found at http://www.gnu.org/licenses/gpl.txt
49 //
50 //*****************************************************************************
51 //@{
52  
53 #ifndef SPYGLASS_H
54 #define SPYGLASS_H
55  
56 // defines
57 // Base I2C node addresses
58 #define PCF8574_I2C_BASE_ADDR 0x40
59 #define MAX517_I2C_BASE_ADDR 0x58
60  
61 // PCF8574 node addresses
62 #define PCF_NODE_BUTTONS 0x00
63 #define PCF_NODE_LCD_DATA 0x01
64 #define PCF_NODE_CONTROL 0x02
65  
66 // Control node bit-defines
67 #define SPYGLASS_LED0 0x01
68 #define SPYGLASS_LED1 0x02
69 #define SPYGLASS_BEEPER 0x04
70 #define SPYGLASS_LCD_RS 0x20
71 #define SPYGLASS_LCD_RW 0x40
72 #define SPYGLASS_LCD_E 0x80
73  
74 // map lcd.c commands to spyglass.c LCD commands
75 #define lcdInit spyglassLcdInit
76 #define lcdHome spyglassLcdHome
77 #define lcdClear spyglassLcdClear
78 #define lcdGotoXY spyglassLcdGotoXY
79 #define lcdDataWrite spyglassLcdWriteChar
80  
81 // functions
82 //! initialize the I2C bus for communication with the spyglass UI.
83 void spyglassInit(void);
84  
85 // *********** MISC INPUT/OUTPUT commands ***********
86  
87 //! Read the state of pushbuttons on the spyglass UI.
88 /// Returns an 8-bit number representing the state of buttons S1-S7 in bits 0-6 respectively.
89 /// - '0' bit value = button not pressed
90 /// - '1' bit value = button is pressed
91 u08 spyglassGetPushbuttons(void);
92  
93 //! Sets the state of LEDs on the spyglass UI.
94 /// Argument is a 2-bit number representing the desired state of LEDs D2 & D3 respectively.
95 /// - '0' bit value = LED off
96 /// - '1' bit value = LED on
97 void spyglassSetLeds(u08 leds);
98  
99 //! Sets the state of the beeper on the spyglass UI.
100 /// - '0' state => beeper off
101 /// - '1' state => beeper on
102 void spyglassSetBeeper(u08 state);
103  
104 //! Sets the contrast voltage of the spyglass LCD.
105 /// Lower numbers are darker contrast, higher numbers are lighter contrast.
106 u08 spyglassSetLcdContrast(u08 contrast);
107  
108 // *********** LCD commands ***********
109  
110 //! Initialize LCD for operation.
111 void spyglassLcdInit(void);
112 //! Set write/cursor position to upper left.
113 void spyglassLcdHome(void);
114 //! Clear LCD display.
115 void spyglassLcdClear(void);
116 //! Set write/cursor posision on LCD display (x=col, y=line).
117 void spyglassLcdGotoXY(u08 x, u08 y);
118 //! Write control or display data to LCD.
119 void spyglassLcdWrite(u08 rs, u08 data);
120 //! Write character to LCD.
121 void spyglassLcdWriteChar(u08 c);
122  
123 // *********** LOW-LEVEL ACCESS ***********
124  
125 //! Write I/O Data to PCF8574 I2C<->Digital I/O chip.
126 u08 pcf8574Write(u08 nodeAddr, u08 data);
127 //! Read I/O Data from PCF8574 I2C<->Digital I/O chip.
128 u08 pcf8574Read(u08 nodeAddr);
129  
130 #endif
131 //@}
{BLAME END}
{FOOTER START}

Powered by WebSVN v2.8.3