Remove scheduler code.
[dmxpainter.git] / src / buffer.c
1 #include "buffer.h"
2
3 char gg_buffer_gs[512] = {
4   /* R     G     B */
5    0xFF, 0xFF, 0xFF,  // 01
6    0xFF, 0x00, 0xFF,  // 02
7    0x00, 0x00, 0x00,  // 03
8    0xDD, 0xDD, 0xDD,  // 04
9    0xCC, 0xCC, 0xCC,  // 05
10    0xBB, 0xBB, 0xBB,  // 06
11    0xAA, 0xAA, 0xAA,  // 07
12    0x99, 0x99, 0x99,  // 08
13    0x88, 0x88, 0x88,  // 09
14    0x77, 0x77, 0x77,  // 10
15    0x66, 0x66, 0x66,  // 11
16    0x55, 0x55, 0x55,  // 12
17    0x44, 0x44, 0x44,  // 13
18    0x33, 0x33, 0x33,  // 14
19    0x22, 0x22, 0x22,  // 15
20
21    0x33, 0x00, 0x33   // 16
22
23 };
24
25
26 #define DC(p) (char)(0x3F * ((char)p - 0) / 100)
27 #define DC_RGB(r, g, b, x) { DC(r), DC(g), DC(b) }
28 char gg_buffer_dc[3] = DC_RGB(
29                           100,
30                            30,
31                            30,
32                            0);
33
34
35 ///////////////////////////////
36
37 #include "mcu.h"
38 #include "tlc.h"
39
40 #include <string.h>
41
42 volatile uint32_t g_delay;
43 volatile uint8_t g_rgb = 0;
44 void reset_counter(void)
45 {
46   g_delay = 0;
47 }
48
49 void buffer_init(void)
50 {
51 #if 0
52   #define BUFFER_INIT_KEEP 1
53   #if BUFFER_INIT_KEEP == 0
54   memset(gg_buffer_gs, 0x00, sizeof(gg_buffer_gs));
55   #endif
56
57   for (uint8_t i = 0; i < (TLC_N_CHANNELS / TLC_N_TLCS_PER_PAINTER - BUFFER_INIT_KEEP); i++)
58     for (uint8_t rgb = 0; rgb < 3; rgb++)
59       gg_buffer_gs[i * 3 + rgb] = 0xF0 | (rgb + 1);
60    reset_counter();
61 #endif
62 }
63
64 #if 0
65 void buffer_next(void)
66 {
67   char * foo = gg_buffer_gs + 15 * 3;
68
69   //if (g_delay++ < 100000) return 0;
70   //reset_counter();
71   foo[0] = (g_rgb % 3) == 0 ? 0xFF : 0x00;
72   foo[1] = (g_rgb % 3) == 1 ? 0xFF : 0x00;
73   foo[2] = (g_rgb % 3) == 2 ? 0xFF : 0x00;
74   //g_rgb--;
75
76   tlc_set_data_done();
77 }
78
79 void buffer_do(void)
80 {
81   g_rgb--;
82 }
83 #endif