3439f59fadae3092d38f37248d53bf71fd03d0b1
[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 "sched.h"\r
75 #include "tlc.h"\r
76 \r
77 sched_res_t buffer_test_next(void);\r
78 \r
79 void buffer_init(void)\r
80 {\r
81   #define BUFFER_INIT_KEEP 1\r
82   for (uint8_t i = 0; i < (TLC_N_CHANNELS / TLC_N_CHANNELS_PER_TLC - BUFFER_INIT_KEEP); i++)\r
83     for (uint8_t rgb = 0; rgb < 3; rgb++)\r
84       gg_buffer_gs[i * 3 + rgb] = 0x00;//0x10 | (rgb + 1);\r
85 }\r
86 \r
87 void buffer_next(void)\r
88 {\r
89   sched_put(&buffer_test_next);\r
90 }\r
91 \r
92 \r
93 volatile uint8_t g_test_cnt;\r
94 sched_res_t buffer_test_next(void)\r
95 {\r
96 #if 0\r
97   uint8_t rgb =  0;\r
98   uint8_t cnt = -1;\r
99   if (g_test_cnt++ != 100) return SCHED_RE;\r
100   g_test_cnt = 0;\r
101 \r
102   gg_buffer_gs[rgb] += cnt;\r
103   if (gg_buffer_gs[rgb] == 0) {\r
104     rgb = (rgb + 1) % 3;\r
105     if (rgb == 0) cnt *= -1;\r
106   }\r
107 #endif\r
108   tlc_set_data_done();\r
109   return SCHED_OK;\r
110 }\r