root / trunk / code / behaviors / library_test / main.c @ 1510
History | View | Annotate | Download (4.37 KB)
1 | 1083 | deffi | #include <dragonfly_lib.h> |
---|---|---|---|
2 | //#include "smart_run_around_fsm.h"
|
||
3 | |||
4 | // Martin "deffi" Herrmann Test
|
||
5 | |||
6 | 1131 | deffi | static void oset(uint8_t r,uint8_t g,uint8_t b) |
7 | 1126 | deffi | { |
8 | 1154 | deffi | orbs_set(r,g,b,255-r,255-g,255-b); |
9 | 1126 | deffi | } |
10 | |||
11 | 1131 | deffi | static void color_circle (void) |
12 | 1083 | deffi | { |
13 | 1154 | deffi | while(1) |
14 | { |
||
15 | for (uint8_t part=0; part<6; ++part) |
||
16 | { |
||
17 | for (uint8_t up=0; up<255; ++up) |
||
18 | { |
||
19 | uint8_t dn=255-up;
|
||
20 | uint8_t on=255;
|
||
21 | uint8_t of=0;
|
||
22 | |||
23 | if (1) |
||
24 | { |
||
25 | // Maximum brightness mode
|
||
26 | switch (part)
|
||
27 | { |
||
28 | case 0: oset (on, up, of); break; |
||
29 | case 1: oset (dn, on, of); break; |
||
30 | case 2: oset (of, on, up); break; |
||
31 | case 3: oset (of, dn, on); break; |
||
32 | case 4: oset (up, of, on); break; |
||
33 | case 5: oset (on, of, dn); break; |
||
34 | } |
||
35 | } |
||
36 | else
|
||
37 | { |
||
38 | // Constant brightness mode (not very constant though)
|
||
39 | switch (part%3) |
||
40 | { |
||
41 | case 0: oset (dn, up, of); break; |
||
42 | case 1: oset (of, dn, up); break; |
||
43 | case 2: oset (up, of, dn); break; |
||
44 | } |
||
45 | } |
||
46 | |||
47 | delay_ms (2);
|
||
48 | } |
||
49 | } |
||
50 | } |
||
51 | 1083 | deffi | } |
52 | |||
53 | 1131 | deffi | static void acl(void) |
54 | 1083 | deffi | { |
55 | 1154 | deffi | #define redval 255 |
56 | #define greenval 150 |
||
57 | #define interval 1300 |
||
58 | #define flash 20 |
||
59 | #define pause 200 |
||
60 | 1083 | deffi | |
61 | 1154 | deffi | #define def do { orb1_set(redval,0,0); orb2_set(0,greenval,0); } while (0) |
62 | #define wht do { orb_set(255,255,255); } while (0) |
||
63 | 1111 | deffi | |
64 | 1154 | deffi | while (1) |
65 | { |
||
66 | wht; delay_ms (flash); |
||
67 | def; delay_ms (pause-flash); |
||
68 | wht; delay_ms (flash); |
||
69 | def; delay_ms (pause-flash); |
||
70 | def; delay_ms (interval-2*pause-2*flash); |
||
71 | } |
||
72 | 1083 | deffi | } |
73 | |||
74 | int main(void) { |
||
75 | 1154 | deffi | // dragonfly_init(ALL_ON);
|
76 | dragonfly_init(0);
|
||
77 | 1111 | deffi | |
78 | 1154 | deffi | usb_init (); |
79 | usb_puts ("Startup\r\n");
|
||
80 | 1111 | deffi | |
81 | 1131 | deffi | |
82 | 1154 | deffi | //encoders_init ();
|
83 | 1111 | deffi | |
84 | 1083 | deffi | //analog_init(ADC_START);
|
85 | 1154 | deffi | //analog_init(0);
|
86 | 1111 | deffi | |
87 | 1083 | deffi | //range_init();
|
88 | |||
89 | 1154 | deffi | //DDRF=2;
|
90 | 1087 | deffi | |
91 | 1154 | deffi | //motors_init ();
|
92 | //motor2_set (FORWARD, 64);
|
||
93 | 1102 | deffi | |
94 | 1154 | deffi | //orb_init_binary ();
|
95 | orb_init_pwm (); |
||
96 | 1109 | deffi | |
97 | 1154 | deffi | if (false) |
98 | { |
||
99 | orbs_set (255, 0, 0, 0, 0, 0); delay_ms (500); |
||
100 | orbs_set (0, 255, 0, 0, 0, 0); delay_ms (500); |
||
101 | orbs_set (0, 0, 255, 0, 0, 0); delay_ms (500); |
||
102 | orbs_set (0, 0, 0, 255, 0, 0); delay_ms (500); |
||
103 | orbs_set (0, 0, 0, 0, 255, 0); delay_ms (500); |
||
104 | orbs_set (0, 0, 0, 0, 0, 255); delay_ms (500); |
||
105 | } |
||
106 | 1111 | deffi | |
107 | 1154 | deffi | if (false) |
108 | { |
||
109 | orb_set (1,1,1); |
||
110 | while (1) |
||
111 | { |
||
112 | SYNC |
||
113 | { |
||
114 | for (uint8_t m=0; m<100; ++m) |
||
115 | { |
||
116 | _delay_us(10);
|
||
117 | } |
||
118 | } |
||
119 | } |
||
120 | } |
||
121 | 1138 | deffi | |
122 | 1154 | deffi | if (false) |
123 | { |
||
124 | while (1) |
||
125 | { |
||
126 | for (uint8_t x=0; x<255; ++x) |
||
127 | { |
||
128 | orbs_set (x, 1, 2, 3, 4, 5); |
||
129 | 1138 | deffi | |
130 | 1154 | deffi | for (uint8_t n=0; n<80; ++n) |
131 | { |
||
132 | SYNC |
||
133 | { for (uint8_t m=0; m<1; ++m) _delay_us(50); } |
||
134 | } |
||
135 | } |
||
136 | 1139 | deffi | |
137 | 1154 | deffi | for (uint8_t x=255; x>0; --x) |
138 | { |
||
139 | orbs_set (x, 1, 1, 1, 1, 1); |
||
140 | delay_ms (4);
|
||
141 | } |
||
142 | } |
||
143 | } |
||
144 | 1083 | deffi | |
145 | 1154 | deffi | if (false) |
146 | { |
||
147 | //orbs_set (2,4,6,8,10,12);
|
||
148 | //orbs_set (32, 64, 96, 128, 160, 192);
|
||
149 | orbs_set (128,128,128,128,128,128); |
||
150 | while (1); |
||
151 | } |
||
152 | 1083 | deffi | |
153 | 1154 | deffi | if (false) |
154 | { |
||
155 | if (!button2_read ())
|
||
156 | { |
||
157 | orb_set_mode (orb_mode_pwm); |
||
158 | orb_disable_timer (); |
||
159 | |||
160 | while (1) |
||
161 | { |
||
162 | // Continuously call the sorting routine for timing test
|
||
163 | for (uint8_t i=0; i<200; ++i) |
||
164 | { |
||
165 | orbs_set (10,20,30,40,50,60); |
||
166 | delay_ms (10);
|
||
167 | } |
||
168 | |||
169 | for (uint8_t i=0; i<200; ++i) |
||
170 | { |
||
171 | orbs_set (60,50,40,30,20,10); |
||
172 | delay_ms (10);
|
||
173 | } |
||
174 | } |
||
175 | } |
||
176 | else
|
||
177 | { |
||
178 | while (button2_read ());
|
||
179 | if (button1_read ())
|
||
180 | { |
||
181 | color_circle (); |
||
182 | } |
||
183 | else
|
||
184 | { |
||
185 | acl (); |
||
186 | } |
||
187 | } |
||
188 | } |
||
189 | |||
190 | |||
191 | |||
192 | // Do some lighting
|
||
193 | if (!button2_read ())
|
||
194 | color_circle (); |
||
195 | else
|
||
196 | acl (); |
||
197 | |||
198 | 1083 | deffi | } |