RTEMS 5.2
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
disp_hcms29xx.h
1/*===============================================================*\
2| Project: display driver for HCMS29xx |
3+-----------------------------------------------------------------+
4| File: disp_hcms29xx.h |
5+-----------------------------------------------------------------+
6| Copyright (c) 2008 |
7| Embedded Brains GmbH |
8| Obere Lagerstr. 30 |
9| D-82178 Puchheim |
10| Germany |
11| rtems@embedded-brains.de |
12+-----------------------------------------------------------------+
13| The license and distribution terms for this file may be |
14| found in the file LICENSE in this distribution or at |
15| http://www.rtems.org/license/LICENSE. |
16+-----------------------------------------------------------------+
17| this file declares the SPI based driver for a HCMS29xx 4 digit |
18| alphanumeric LED display |
19\*===============================================================*/
20
21#ifndef _DISP_HCMS29XX_H
22#define _DISP_HCMS29XX_H
23#include <rtems.h>
24#include <time.h>
25
26#ifdef __cplusplus
27extern "C" {
28#endif
29#define DISP_HCMS29XX_TEXT_CNT (128)
30
31 typedef struct {
32 rtems_device_minor_number minor; /* minor device number */
33 /*
34 * in the disp_buffer, the string to be displayed is placed
35 */
36 char disp_buffer[DISP_HCMS29XX_TEXT_CNT];
37 int disp_buf_cnt; /* number of valid chars in disp_buffer */
38 /*
39 * in the trns buffer the string is transfered to display task
40 */
41 char trns_buffer[DISP_HCMS29XX_TEXT_CNT];
42 /*
43 * in the dev_buffer, characters will be accumulated before display...
44 */
45 char dev_buffer[DISP_HCMS29XX_TEXT_CNT];
46 int dev_buf_cnt; /* number of valid chars in dev_buffer */
47
48 rtems_id trns_sema_id; /* ID of disp trns buffer sema */
49 rtems_id task_id; /* ID of disp task */
50 bool rotate; /* FLAG: display is upside down */
52
53 typedef struct {
54 rtems_libi2c_drv_t libi2c_drv_entry;
57 /*
58 * pass this descriptor pointer to rtems_libi2c_register_drv
59 */
60 extern rtems_libi2c_drv_t *disp_hcms29xx_driver_descriptor;
61
62/*=========================================================================*\
63| Function: |
64\*-------------------------------------------------------------------------*/
65rtems_device_driver disp_hcms29xx_dev_initialize
66 (
67/*-------------------------------------------------------------------------*\
68| Purpose: |
69| prepare the display device driver to accept write calls |
70| register device with its name |
71+---------------------------------------------------------------------------+
72| Input Parameters: |
73\*-------------------------------------------------------------------------*/
74 rtems_device_major_number major,
75 rtems_device_minor_number minor,
76 void *arg
77 );
78/*-------------------------------------------------------------------------*\
79| Return Value: |
80| rtems_status_code |
81\*=========================================================================*/
82
83/*=========================================================================*\
84| Function: |
85\*-------------------------------------------------------------------------*/
86rtems_device_driver disp_hcms29xx_dev_open
87(
88/*-------------------------------------------------------------------------*\
89| Purpose: |
90| open the display device |
91+---------------------------------------------------------------------------+
92| Input Parameters: |
93\*-------------------------------------------------------------------------*/
94 rtems_device_major_number major,
95 rtems_device_minor_number minor,
96 void *arg
97 );
98/*-------------------------------------------------------------------------*\
99| Return Value: |
100| rtems_status_code |
101\*=========================================================================*/
102
103/*=========================================================================*\
104| Function: |
105\*-------------------------------------------------------------------------*/
106rtems_device_driver disp_hcms29xx_dev_write
107(
108/*-------------------------------------------------------------------------*\
109| Purpose: |
110| write to display device |
111+---------------------------------------------------------------------------+
112| Input Parameters: |
113\*-------------------------------------------------------------------------*/
114 rtems_device_major_number major,
115 rtems_device_minor_number minor,
116 void *arg
117 );
118/*-------------------------------------------------------------------------*\
119| Return Value: |
120| rtems_status_code |
121\*=========================================================================*/
122
123/*=========================================================================*\
124| Function: |
125\*-------------------------------------------------------------------------*/
126rtems_device_driver disp_hcms29xx_dev_close
127(
128/*-------------------------------------------------------------------------*\
129| Purpose: |
130| close the display device |
131+---------------------------------------------------------------------------+
132| Input Parameters: |
133\*-------------------------------------------------------------------------*/
134 rtems_device_major_number major,
135 rtems_device_minor_number minor,
136 void *arg
137 );
138/*-------------------------------------------------------------------------*\
139| Return Value: |
140| rtems_status_code |
141\*=========================================================================*/
142
143#define DISP_HCMS29XX_DRIVER { \
144 disp_hcms29xx_dev_initialize, \
145 disp_hcms29xx_dev_open, \
146 NULL, \
147 disp_hcms29xx_dev_write, \
148 NULL, \
149 disp_hcms29xx_dev_close}
150
151
152#ifdef __cplusplus
153}
154#endif
155
156#endif /* _DISP_HCMS29XX_H */
rtems_status_code
Classic API Status.
Definition: status.h:43
Objects_Id rtems_id
Used to manage and manipulate RTEMS object identifiers.
Definition: types.h:83
Definition: disp_hcms29xx.h:53
Definition: libi2c.h:297
Definition: disp_hcms29xx.h:31