RGB LED cube 5x5x5  1.0
Martin Stejskal, Schmidt Dominik
 All Files Functions Variables Macros Groups Pages
framebuffer.h
Go to the documentation of this file.
1 
16 // Trick for multiply include this file
17 #ifndef _framebuffer_library_
18 #define _framebuffer_library_
19 
20 /*-----------------------------------------*
21  | Includes |
22  *-----------------------------------------*/
23 #include <avr/io.h> // Defined I/O
24 #include <avr/interrupt.h> // Interrupts
25 #include <inttypes.h> // Data types
26 #include "settings.h" // Symbolic names for pins and other settings
27 #include <util/delay.h>
28 #include "bit_operations.h" // Basic operations with pins
29 /*-----------------------------------------*
30  | Macros |
31  *-----------------------------------------*/
35 #define framebuffer_wall0_void i_fb_data[0][0] = i_fb_data[0][1] =\
36  i_fb_data[0][2] = i_fb_data[0][3] = i_fb_data[0][4] = 0;
37 
41 #define framebuffer_wall1_void i_fb_data[1][0] = i_fb_data[1][1] =\
42  i_fb_data[1][2] = i_fb_data[1][3] = i_fb_data[1][4] = 0;
43 
47 #define framebuffer_wall2_void i_fb_data[2][0] = i_fb_data[2][1] =\
48  i_fb_data[2][2] = i_fb_data[2][3] = i_fb_data[2][4] = 0;
49 
53 #define framebuffer_wall3_void i_fb_data[3][0] = i_fb_data[3][1] =\
54  i_fb_data[3][2] = i_fb_data[3][3] = i_fb_data[3][4] = 0;
55 
59 #define framebuffer_wall4_void i_fb_data[4][0] = i_fb_data[4][1] =\
60  i_fb_data[4][2] = i_fb_data[4][3] = i_fb_data[4][4] = 0;
61 
62 
63 
64 
68 #define framebuffer_wall0_ones i_fb_data[0][0] = i_fb_data[0][1] =\
69  i_fb_data[0][2] = i_fb_data[0][3] = i_fb_data[0][4] = 0x7FFF;
70 
74 #define framebuffer_wall1_ones i_fb_data[1][0] = i_fb_data[1][1] =\
75  i_fb_data[1][2] = i_fb_data[1][3] = i_fb_data[1][4] = 0x7FFF;
76 
80 #define framebuffer_wall2_ones i_fb_data[2][0] = i_fb_data[2][1] =\
81  i_fb_data[2][2] = i_fb_data[2][3] = i_fb_data[2][4] = 0x7FFF;
82 
86 #define framebuffer_wall3_ones i_fb_data[3][0] = i_fb_data[3][1] =\
87  i_fb_data[3][2] = i_fb_data[3][3] = i_fb_data[3][4] = 0x7FFF;
88 
92 #define framebuffer_wall4_ones i_fb_data[4][0] = i_fb_data[4][1] =\
93  i_fb_data[4][2] = i_fb_data[4][3] = i_fb_data[4][4] = 0x7FFF;
94 
95 
96 
100 #define framebuffer_copy_wall0_to_wall1 \
101  i_fb_data[1][0] = i_fb_data[0][0];\
102  i_fb_data[1][1] = i_fb_data[0][1];\
103  i_fb_data[1][2] = i_fb_data[0][2];\
104  i_fb_data[1][3] = i_fb_data[0][3];\
105  i_fb_data[1][4] = i_fb_data[0][4];
106 
110 #define framebuffer_copy_wall1_to_wall2 \
111  i_fb_data[2][0] = i_fb_data[1][0];\
112  i_fb_data[2][1] = i_fb_data[1][1];\
113  i_fb_data[2][2] = i_fb_data[1][2];\
114  i_fb_data[2][3] = i_fb_data[1][3];\
115  i_fb_data[2][4] = i_fb_data[1][4];
116 
120 #define framebuffer_copy_wall2_to_wall3 \
121  i_fb_data[3][0] = i_fb_data[2][0];\
122  i_fb_data[3][1] = i_fb_data[2][1];\
123  i_fb_data[3][2] = i_fb_data[2][2];\
124  i_fb_data[3][3] = i_fb_data[2][3];\
125  i_fb_data[3][4] = i_fb_data[2][4];
126 
130 #define framebuffer_copy_wall3_to_wall4 \
131  i_fb_data[4][0] = i_fb_data[3][0];\
132  i_fb_data[4][1] = i_fb_data[3][1];\
133  i_fb_data[4][2] = i_fb_data[3][2];\
134  i_fb_data[4][3] = i_fb_data[3][3];\
135  i_fb_data[4][4] = i_fb_data[3][4];
136 
137 
138 /*-----------------------------------------*
139  | Function prototypes |
140  *-----------------------------------------*/
158 void framebuffer(volatile uint16_t (*p_fb_data)[5][5]);
159 
165 void init_framebuffer(void);
166 
167 
175 void set_active_wall( uint8_t i_wall_number );
176 
177 
185 void set_active_column( uint8_t i_column_number );
186 
187 
195 void load_DATA_RED_on_bus( uint8_t i_data_r );
196 
197 
205 void load_DATA_GREEN_on_bus( uint8_t i_data_g );
206 
207 
208 
216 void load_DATA_BLUE_on_bus( uint8_t i_data_b );
217 
218 
219 #endif