##// END OF EJS Templates
Merge
martin -
r54:553a77d94eef merge default
parent child
Show More
@@ -0,0 +1,2
1 touch test
2 touch test2
@@ -1,98 +1,99
1 /*------------------------------------------------------------------------------
1 /*------------------------------------------------------------------------------
2 -- This file is a part of the LPP VHDL IP LIBRARY
2 -- This file is a part of the LPP VHDL IP LIBRARY
3 -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS
3 -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS
4 --
4 --
5 -- This program is free software; you can redistribute it and/or modify
5 -- This program is free software; you can redistribute it and/or modify
6 -- it under the terms of the GNU General Public License as published by
6 -- it under the terms of the GNU General Public License as published by
7 -- the Free Software Foundation; either version 3 of the License, or
7 -- the Free Software Foundation; either version 3 of the License, or
8 -- (at your option) any later version.
8 -- (at your option) any later version.
9 --
9 --
10 -- This program is distributed in the hope that it will be useful,
10 -- This program is distributed in the hope that it will be useful,
11 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
11 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
12 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 -- GNU General Public License for more details.
13 -- GNU General Public License for more details.
14 --
14 --
15 -- You should have received a copy of the GNU General Public License
15 -- You should have received a copy of the GNU General Public License
16 -- along with this program; if not, write to the Free Software
16 -- along with this program; if not, write to the Free Software
17 -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 -------------------------------------------------------------------------------*/
18 -------------------------------------------------------------------------------*/
19 /*-- Author : Alexis Jeandet
19 /*-- Author : Alexis Jeandet
20 -- Mail : alexis.jeandet@lpp.polytechnique.fr
20 -- Mail : alexis.jeandet@lpp.polytechnique.fr
21 ----------------------------------------------------------------------------*/
21 ----------------------------------------------------------------------------*/
22 #ifndef APB_LCD_DRIVER_H
22 #ifndef APB_LCD_DRIVER_H
23 #define APB_LCD_DRIVER_H
23 #define APB_LCD_DRIVER_H
24
24
25 #define readyFlag 1024
25 #define readyFlag 1024
26 #define lcdCharCnt 80
26 #define lcdCharCnt 80
27
27
28
28
29 /** @todo implemente some shift functions */
29 /** @todo implemente some shift functions */
30
30
31
31
32 /*===================================================
32 /*===================================================
33 T Y P E S D E F
33 T Y P E S D E F
34 ====================================================*/
34 ====================================================*/
35
35
36
36
37
37
38 /** error type used for most of lcd functions */
38 /** error type used for most of lcd functions */
39 typedef int lcd_err;
39 typedef int lcd_err;
40
40
41 /** lcd error ennum for higher abstraction level when error decoding */
41 /** lcd error ennum for higher abstraction level when error decoding */
42 enum lcd_error
42 enum lcd_error
43 {
43 {
44 lcd_error_no_error, /**< no error append while function execution */
44 lcd_error_no_error, /**< no error append while function execution */
45 lcd_error_not_ready, /**< the lcd isn't available*/
45 lcd_error_not_ready, /**< the lcd isn't available*/
46 lcd_error_not_openned, /**< the device guiven to the function isn't opened*/
46 lcd_error_not_openned, /**< the device guiven to the function isn't opened*/
47 lcd_error_too_long /**< the string guiven to the lcd is bigger than the lcd frame buffer memory */
47 lcd_error_too_long /**< the string guiven to the lcd is bigger than the lcd frame buffer memory */
48 };
48 };
49
49
50
50
51 /** for each command sended to the lcd driver a time should be guiven according to the lcd datasheet */
51 /** for each command sended to the lcd driver a time should be guiven according to the lcd datasheet */
52 enum lcd_CMD_time
52 enum lcd_CMD_time
53 {
53 {
54 lcd_4us = 0x0FF,
54 lcd_4us = 0x0FF,
55 lcd_100us = 0x1FF,
55 lcd_100us = 0x1FF,
56 lcd_4ms = 0x2FF,
56 lcd_4ms = 0x2FF,
57 lcd_20ms = 0x3FF
57 lcd_20ms = 0x3FF
58 };
58 };
59
59
60 /** list of availiable lcd commands use whith an AND mask whith cmd time */
60 /** list of availiable lcd commands use whith an AND mask whith cmd time */
61 enum lcd_CMD
61 enum lcd_CMD
62 {
62 {
63 CursorON = 0xF0E,
63 CursorON = 0xF0E,
64 CursorOFF = 0xF0C
64 CursorOFF = 0xF0C
65 };
65 };
66
66
67 /** structure representing the lcd registers */
67 /** structure representing the lcd registers */
68 struct lcd_driver
68 struct lcd_driver
69 {
69 {
70 int cfg_reg; /**< Configuration register composed of Ready flag [10], CMD time Value [9:8], CMD to send [7:0]*/
70 int cfg_reg; /**< Configuration register composed of Ready flag [10], CMD time Value [9:8],
71 CMD to send [7:0]*/
71 int Frame_buff[lcdCharCnt]; /**< Frame Buffer space each address corresponds to a char on the lcd screen */
72 int Frame_buff[lcdCharCnt]; /**< Frame Buffer space each address corresponds to a char on the lcd screen */
72 };
73 };
73
74
74 typedef struct lcd_driver lcd_device;
75 typedef struct lcd_driver lcd_device;
75
76
76 /*===================================================
77 /*===================================================
77 F U N C T I O N S
78 F U N C T I O N S
78 ====================================================*/
79 ====================================================*/
79
80
80 /** says if the lcd is busy */
81 /** says if the lcd is busy */
81 int lcdbusy(lcd_device * lcd);
82 int lcdbusy(lcd_device * lcd);
82
83
83 /** Opens and returns the counth lcd found on APB bus else NULL */
84 /** Opens and returns the counth lcd found on APB bus else NULL */
84 lcd_device* lcdopen(int count);
85 lcd_device* lcdopen(int count);
85
86
86 /** Sends a command to the given device, don't forget to guive the time of the cmd */
87 /** Sends a command to the given device, don't forget to guive the time of the cmd */
87 lcd_err lcdsendcmd(lcd_device* lcd,int cmd);
88 lcd_err lcdsendcmd(lcd_device* lcd,int cmd);
88
89
89 /** Sets a char on the given device at given position */
90 /** Sets a char on the given device at given position */
90 lcd_err lcdsetchar(lcd_device* lcd,int position,const char value);
91 lcd_err lcdsetchar(lcd_device* lcd,int position,const char value);
91
92
92 /** Prints a message on the given device at given position, "\n" is understood but for others use sprintf before */
93 /** Prints a message on the given device at given position, "\n" is understood but for others use sprintf before */
93 lcd_err lcdprint(lcd_device* lcd,int position,const char* value);
94 lcd_err lcdprint(lcd_device* lcd,int position,const char* value);
94
95
95 /** Writes space character on each adress of the lcd screen */
96 /** Writes space character on each adress of the lcd screen */
96 lcd_err lcdclear(lcd_device* lcd);
97 lcd_err lcdclear(lcd_device* lcd);
97
98
98 #endif
99 #endif
@@ -1,98 +1,99
1 /*------------------------------------------------------------------------------
1 /*------------------------------------------------------------------------------
2 -- This file is a part of the LPP VHDL IP LIBRARY
2 -- This file is a part of the LPP VHDL IP LIBRARY
3 -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS
3 -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS
4 --
4 --
5 -- This program is free software; you can redistribute it and/or modify
5 -- This program is free software; you can redistribute it and/or modify
6 -- it under the terms of the GNU General Public License as published by
6 -- it under the terms of the GNU General Public License as published by
7 -- the Free Software Foundation; either version 3 of the License, or
7 -- the Free Software Foundation; either version 3 of the License, or
8 -- (at your option) any later version.
8 -- (at your option) any later version.
9 --
9 --
10 -- This program is distributed in the hope that it will be useful,
10 -- This program is distributed in the hope that it will be useful,
11 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
11 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
12 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 -- GNU General Public License for more details.
13 -- GNU General Public License for more details.
14 --
14 --
15 -- You should have received a copy of the GNU General Public License
15 -- You should have received a copy of the GNU General Public License
16 -- along with this program; if not, write to the Free Software
16 -- along with this program; if not, write to the Free Software
17 -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 -------------------------------------------------------------------------------*/
18 -------------------------------------------------------------------------------*/
19 /*-- Author : Alexis Jeandet
19 /*-- Author : Alexis Jeandet
20 -- Mail : alexis.jeandet@lpp.polytechnique.fr
20 -- Mail : alexis.jeandet@lpp.polytechnique.fr
21 ----------------------------------------------------------------------------*/
21 ----------------------------------------------------------------------------*/
22 #ifndef APB_LCD_DRIVER_H
22 #ifndef APB_LCD_DRIVER_H
23 #define APB_LCD_DRIVER_H
23 #define APB_LCD_DRIVER_H
24
24
25 #define readyFlag 1024
25 #define readyFlag 1024
26 #define lcdCharCnt 80
26 #define lcdCharCnt 80
27
27
28
28
29 /** @todo implemente some shift functions */
29 /** @todo implemente some shift functions */
30
30
31
31
32 /*===================================================
32 /*===================================================
33 T Y P E S D E F
33 T Y P E S D E F
34 ====================================================*/
34 ====================================================*/
35
35
36
36
37
37
38 /** error type used for most of lcd functions */
38 /** error type used for most of lcd functions */
39 typedef int lcd_err;
39 typedef int lcd_err;
40
40
41 /** lcd error ennum for higher abstraction level when error decoding */
41 /** lcd error ennum for higher abstraction level when error decoding */
42 enum lcd_error
42 enum lcd_error
43 {
43 {
44 lcd_error_no_error, /**< no error append while function execution */
44 lcd_error_no_error, /**< no error append while function execution */
45 lcd_error_not_ready, /**< the lcd isn't available*/
45 lcd_error_not_ready, /**< the lcd isn't available*/
46 lcd_error_not_openned, /**< the device guiven to the function isn't opened*/
46 lcd_error_not_openned, /**< the device guiven to the function isn't opened*/
47 lcd_error_too_long /**< the string guiven to the lcd is bigger than the lcd frame buffer memory */
47 lcd_error_too_long /**< the string guiven to the lcd is bigger than the lcd frame buffer memory */
48 };
48 };
49
49
50
50
51 /** for each command sended to the lcd driver a time should be guiven according to the lcd datasheet */
51 /** for each command sended to the lcd driver a time should be guiven according to the lcd datasheet */
52 enum lcd_CMD_time
52 enum lcd_CMD_time
53 {
53 {
54 lcd_4us = 0x0FF,
54 lcd_4us = 0x0FF,
55 lcd_100us = 0x1FF,
55 lcd_100us = 0x1FF,
56 lcd_4ms = 0x2FF,
56 lcd_4ms = 0x2FF,
57 lcd_20ms = 0x3FF
57 lcd_20ms = 0x3FF
58 };
58 };
59
59
60 /** list of availiable lcd commands use whith an AND mask whith cmd time */
60 /** list of availiable lcd commands use whith an AND mask whith cmd time */
61 enum lcd_CMD
61 enum lcd_CMD
62 {
62 {
63 CursorON = 0xF0E,
63 CursorON = 0xF0E,
64 CursorOFF = 0xF0C
64 CursorOFF = 0xF0C
65 };
65 };
66
66
67 /** structure representing the lcd registers */
67 /** structure representing the lcd registers */
68 struct lcd_driver
68 struct lcd_driver
69 {
69 {
70 int cfg_reg; /**< Configuration register composed of Ready flag [10], CMD time Value [9:8], CMD to send [7:0]*/
70 int cfg_reg; /**< Configuration register composed of Ready flag [10], CMD time Value [9:8],
71 CMD to send [7:0]*/
71 int Frame_buff[lcdCharCnt]; /**< Frame Buffer space each address corresponds to a char on the lcd screen */
72 int Frame_buff[lcdCharCnt]; /**< Frame Buffer space each address corresponds to a char on the lcd screen */
72 };
73 };
73
74
74 typedef struct lcd_driver lcd_device;
75 typedef struct lcd_driver lcd_device;
75
76
76 /*===================================================
77 /*===================================================
77 F U N C T I O N S
78 F U N C T I O N S
78 ====================================================*/
79 ====================================================*/
79
80
80 /** says if the lcd is busy */
81 /** says if the lcd is busy */
81 int lcdbusy(lcd_device * lcd);
82 int lcdbusy(lcd_device * lcd);
82
83
83 /** Opens and returns the counth lcd found on APB bus else NULL */
84 /** Opens and returns the counth lcd found on APB bus else NULL */
84 lcd_device* lcdopen(int count);
85 lcd_device* lcdopen(int count);
85
86
86 /** Sends a command to the given device, don't forget to guive the time of the cmd */
87 /** Sends a command to the given device, don't forget to guive the time of the cmd */
87 lcd_err lcdsendcmd(lcd_device* lcd,int cmd);
88 lcd_err lcdsendcmd(lcd_device* lcd,int cmd);
88
89
89 /** Sets a char on the given device at given position */
90 /** Sets a char on the given device at given position */
90 lcd_err lcdsetchar(lcd_device* lcd,int position,const char value);
91 lcd_err lcdsetchar(lcd_device* lcd,int position,const char value);
91
92
92 /** Prints a message on the given device at given position, "\n" is understood but for others use sprintf before */
93 /** Prints a message on the given device at given position, "\n" is understood but for others use sprintf before */
93 lcd_err lcdprint(lcd_device* lcd,int position,const char* value);
94 lcd_err lcdprint(lcd_device* lcd,int position,const char* value);
94
95
95 /** Writes space character on each adress of the lcd screen */
96 /** Writes space character on each adress of the lcd screen */
96 lcd_err lcdclear(lcd_device* lcd);
97 lcd_err lcdclear(lcd_device* lcd);
97
98
98 #endif
99 #endif
1 NO CONTENT: file was removed
NO CONTENT: file was removed
1 NO CONTENT: file was removed
NO CONTENT: file was removed
1 NO CONTENT: file was removed
NO CONTENT: file was removed
General Comments 0
You need to be logged in to leave comments. Login now