a3cc6e53b0cc65fad809ed00afc6633a3cd43579
[dmxpainter.git] / src / buffer.c
1 #include "buffer.h"\r
2 \r
3 char gg_buffer_gs[512] = {\r
4   /* R     G     B */\r
5    0x01, 0x01, 0x01,\r
6    0x00, 0x00, 0xFF,\r
7 \r
8 \r
9    0x00, 0x00, 0x00,\r
10    0xDD, 0xDD, 0xDD,\r
11    0xCC, 0xCC, 0xCC,\r
12    0xBB, 0xBB, 0xBB,\r
13    0xAA, 0xAA, 0xAA,\r
14    0x99, 0x99, 0x99,\r
15    0x88, 0x88, 0x88,\r
16    0x77, 0x77, 0x77,\r
17    0x66, 0x66, 0x66,\r
18    0x55, 0x55, 0x55,\r
19    0x44, 0x44, 0x44,\r
20    0x33, 0x33, 0x33,\r
21    0x22, 0x22, 0x22,\r
22    0x11, 0x11, 0x00,\r
23 \r
24    0x00, 0x00, 0xFF,\r
25 \r
26 \r
27 \r
28    0x00, 0x00, 0x00,\r
29    0x00, 0x00, 0x00,\r
30    0x00, 0x00, 0x00,\r
31    0x00, 0x00, 0x00,\r
32    0x00, 0x00, 0x00,\r
33    0x00, 0x00, 0x00,\r
34    0x00, 0x00, 0x00,\r
35    0x00, 0x00, 0x00,\r
36    0x00, 0x00, 0x00,\r
37    0x00, 0x00, 0x00,\r
38    0x00, 0x00, 0x00,\r
39    0x00, 0x00, 0x00,\r
40    0x00, 0x00, 0x00,\r
41    0x00, 0x00, 0x00,\r
42    0x00, 0x00, 0x00,\r
43    0x00, 0x00, 0x00,\r
44 \r
45 \r
46 \r
47    0xFF, 0xFF, 0xFF,\r
48    0xEE, 0xEE, 0xEE,\r
49    0xDD, 0xDD, 0xDD,\r
50    0xCC, 0xCC, 0xCC,\r
51    0xBB, 0xBB, 0xBB,\r
52    0xAA, 0xAA, 0xAA,\r
53    0x99, 0x99, 0x99,\r
54    0x88, 0x88, 0x88,\r
55    0x77, 0x77, 0x77,\r
56    0x66, 0x66, 0x66,\r
57    0x55, 0x55, 0x55,\r
58    0x44, 0x44, 0x44,\r
59    0x33, 0x33, 0x33,\r
60    0x22, 0x22, 0x22,\r
61    0x11, 0x11, 0x11,\r
62    0x01, 0x02, 0x03\r
63 };\r
64 \r
65 char gg_buffer_dc[3]   = {\r
66   0x0B, // R\r
67   0x09, // G\r
68   0x0A  // B\r
69 };\r
70 \r
71 \r
72 ///////////////////////////////\r
73 \r
74 #include "mcu.h"\r
75 #include "sched.h"\r
76 #include "tlc.h"\r
77 \r
78 #include <string.h>\r
79 \r
80 sched_res_t buffer_test_next(void);\r
81 \r
82 void buffer_init(void)\r
83 {\r
84   \r
85   #define BUFFER_INIT_KEEP 0\r
86   #if BUFFER_INIT_KEEP == 1\r
87   memset(gg_buffer_gs, 0x00, sizeof(gg_buffer_gs));\r
88   #endif\r
89   for (uint8_t i = 0; i < (TLC_N_CHANNELS / TLC_N_TLCS_PER_PAINTER - BUFFER_INIT_KEEP); i++)\r
90     for (uint8_t rgb = 0; rgb < 3; rgb++)\r
91       gg_buffer_gs[i * 3 + rgb] = 0x10 | (rgb + 1);\r
92 }\r
93 \r
94 void buffer_next(void)\r
95 {\r
96   //sched_put(&buffer_test_next);\r
97   buffer_test_next();\r
98 }\r
99 \r
100 \r
101 volatile uint8_t g_test_cnt;\r
102 sched_res_t buffer_test_next(void)\r
103 {\r
104 #if 0\r
105   uint8_t rgb =  0;\r
106   uint8_t cnt = -1;\r
107   if (g_test_cnt++ != 100) return SCHED_RE;\r
108   g_test_cnt = 0;\r
109 \r
110   gg_buffer_gs[rgb] += cnt;\r
111   if (gg_buffer_gs[rgb] == 0) {\r
112     rgb = (rgb + 1) % 3;\r
113     if (rgb == 0) cnt *= -1;\r
114   }\r
115 #endif\r
116   tlc_set_data_done();\r
117   return SCHED_OK;\r
118 }\r