Subversion Repositories Code-Repo

Rev

Rev 263 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 263 Rev 264
Line 10... Line 10...
10
 
10
 
11
#define GCS_REG_SIZE 36
11
#define GCS_REG_SIZE 36
12
#define GCS_LAYER_SIZE (GCS_REG_SIZE*CUBE_ROW_COUNT)
12
#define GCS_LAYER_SIZE (GCS_REG_SIZE*CUBE_ROW_COUNT)
13
 
13
 
14
// Color Definitions
14
// Color Definitions
-
 
15
#define CLEAR  0x000,0x000,0x000
15
#define RED    0x08F,0x000,0x000
16
#define RED    0x0FF,0x000,0x000
16
#define ORANGE 0x08F,0x020,0x000
17
#define ORANGE 0x0FF,0x040,0x000
17
#define YELLOW 0x08F,0x08F,0x000
18
#define YELLOW 0x0FF,0x0FF,0x000
18
#define GREEN  0x000,0x08F,0x000
19
#define GREEN  0x000,0x0FF,0x000
19
#define TEAL   0x000,0x08F,0x08F
20
#define TEAL   0x000,0x0FF,0x040
20
#define BLUE   0x000,0x000,0x08F
21
#define BLUE   0x000,0x000,0x0FF
21
#define PURPLE 0x08F,0x000,0x08F
22
#define PURPLE 0x0FF,0x000,0x0FF
22
#define WHITE  0x0FF,0x0FF,0x0FF
23
#define WHITE  0x0FF,0x0FF,0x0FF
23
 
24
 
24
// Control Pin Declarations
25
// Control Pin Declarations
25
#define SFT_D_TRIS TRISBbits.TRISB15
26
#define SFT_D_TRIS TRISBbits.TRISB15
26
#define SFT_S_TRIS TRISDbits.TRISD5
27
#define SFT_S_TRIS TRISDbits.TRISD5
Line 37... Line 38...
37
 
38
 
38
#define GSLAT PORTDbits.RD9
39
#define GSLAT PORTDbits.RD9
39
#define XBLNK PORTDbits.RD2
40
#define XBLNK PORTDbits.RD2
40
 
41
 
41
// String Overlay Buffer Size
42
// String Overlay Buffer Size
42
#define CUBE_STRING_MAX_LENGTH 32
43
#define CUBE_STRING_MAX_LENGTH 255
43
 
44
 
44
// Data Streaming In Buffer Size
45
// Data Streaming In Buffer Size
45
#define CUBE_FRAME_BUFFER_SIZE 3000
46
#define CUBE_FRAME_BUFFER_SIZE 3000
46
#define CUBE_START_CHAR  0x7E
47
#define CUBE_START_CHAR  0x7E
47
#define CUBE_ESCAPE_CHAR 0x7D
48
#define CUBE_ESCAPE_CHAR 0x7D
Line 53... Line 54...
53
#define CUBE_COMMAND_SET_PIXEL      0x10 // [Layer, Row, Column, R, G, B]
54
#define CUBE_COMMAND_SET_PIXEL      0x10 // [Layer, Row, Column, R, G, B]
54
#define CUBE_COMMAND_SET_ALL        0x11 // [R1, G1, B1, R2, ...]
55
#define CUBE_COMMAND_SET_ALL        0x11 // [R1, G1, B1, R2, ...]
55
#define CUBE_COMMAND_START_TEXT     0x20 // [R, G, B, Char1, Char2, Char3, ...]
56
#define CUBE_COMMAND_START_TEXT     0x20 // [R, G, B, Char1, Char2, Char3, ...]
56
#define CUBE_COMMAND_STOP_TEXT      0x21 // (no data)
57
#define CUBE_COMMAND_STOP_TEXT      0x21 // (no data)
57
 
58
 
-
 
59
// Ethernet Op-Codes
-
 
60
#define CUBE_ETH_RESET              0x01
-
 
61
#define CUBE_EHT_IDLE               0x02
-
 
62
#define CUBE_ETH_CLEAR              0x0A
-
 
63
#define CUBE_ETH_DCS                0x0B
-
 
64
#define CUBE_ETH_ROTATE             0x0C
-
 
65
#define CUBE_ETH_ROTATE_LAYER       0x0D
-
 
66
#define CUBE_ETH_WRITE_ALL          0x10
-
 
67
#define CUBE_ETH_WRITE_PIXEL        0x11
-
 
68
#define CUBE_ETH_WRITE_CHANNEL      0x12
-
 
69
#define CUBE_ETH_WRITE_TEXT         0x20
-
 
70
#define CUBE_ETH_WATERFALL          0x30
-
 
71
#define CUBE_ETH_SPHERE             0x31
-
 
72
 
58
typedef enum {
73
typedef enum {
59
    IDLE,
74
    IDLE,
60
    READ_LENGTH_MSB,
75
    READ_LENGTH_MSB,
61
    READ_LENGTH_LSB,
76
    READ_LENGTH_LSB,
62
    READ_COMMAND,
77
    READ_COMMAND,
Line 99... Line 114...
99
// Cube control functions
114
// Cube control functions
100
void Cube_Write_DCS(uint8_t BC);
115
void Cube_Write_DCS(uint8_t BC);
101
void Cube_Clear(void);
116
void Cube_Clear(void);
102
void Cube_Set_All(uint16_t R, uint16_t G, uint16_t B);
117
void Cube_Set_All(uint16_t R, uint16_t G, uint16_t B);
103
void Cube_Set_Layer(uint8_t layer, uint16_t R, uint16_t G, uint16_t B);
118
void Cube_Set_Layer(uint8_t layer, uint16_t R, uint16_t G, uint16_t B);
-
 
119
void Cube_Set_Row(uint8_t row, uint16_t R, uint16_t G, uint16_t B);
-
 
120
void Cube_Set_Column(uint8_t column, uint16_t R, uint16_t G, uint16_t B);
104
void Cube_Set_Pixel(uint8_t layer, uint8_t row, uint8_t column, uint16_t R, uint16_t G, uint16_t B);
121
void Cube_Set_Pixel(uint8_t layer, uint8_t row, uint8_t column, uint16_t R, uint16_t G, uint16_t B);
105
void Cube_Get_Pixel(uint8_t layer, uint8_t row, uint8_t column, uint16_t* R, uint16_t* G, uint16_t* B);
122
void Cube_Get_Pixel(uint8_t layer, uint8_t row, uint8_t column, uint16_t* R, uint16_t* G, uint16_t* B);
106
void Cube_Move_Pixel(uint8_t layer1, uint8_t row1, uint8_t column1, uint8_t layer2, uint8_t row2, uint8_t column2);
123
void Cube_Move_Pixel(uint8_t layer1, uint8_t row1, uint8_t column1, uint8_t layer2, uint8_t row2, uint8_t column2);
-
 
124
void Cube_Set_Sphere(uint8_t layer, uint8_t R, uint8_t G, uint8_t B);
-
 
125
void Cube_Set_Shell(uint8_t layer, uint8_t R, uint8_t G, uint8_t B);
107
void Cube_Rotate_Shell(uint8_t shell, uint8_t direction);
126
void Cube_Rotate_Shell(uint8_t shell, uint8_t direction);
108
void Cube_Rotate(uint8_t direction);
127
void Cube_Rotate(uint8_t direction);
-
 
128
void Cube_Shift_Row(uint8_t direction);
-
 
129
 
-
 
130
void Cube_Shift_Waterfall(uint8_t *values);
-
 
131
void Cube_Shift_Waterfall2(uint8_t *values);
109
 
132
 
110
// Overlay control functions
133
// Overlay control functions
111
void Cube_Overlay_Clear(void);
134
void Cube_Overlay_Clear(void);
112
void Cube_Overlay_Set_Pixel(uint8_t layer, uint8_t row, uint8_t column, uint16_t R, uint16_t G, uint16_t B);
135
void Cube_Overlay_Set_Pixel(uint8_t layer, uint8_t row, uint8_t column, uint16_t R, uint16_t G, uint16_t B);
113
void Cube_Overlay_Get_Pixel(uint8_t layer, uint8_t row, uint8_t column, uint16_t* R, uint16_t* G, uint16_t* B);
136
void Cube_Overlay_Get_Pixel(uint8_t layer, uint8_t row, uint8_t column, uint16_t* R, uint16_t* G, uint16_t* B);