libpropeller
Making PropellerGCC Easier
 All Classes Files Functions Variables Enumerations Enumerator Macros Pages
pwm32.h
Go to the documentation of this file.
1 
2 #ifndef libpropeller_pwm32_h__
3 #define libpropeller_pwm32_h__
4 
5 #include <stdint.h>
6 
7 
8 #include <propeller.h>
9 
10 #ifdef __GNUC__
11 #define INLINE__ static inline
12 #define Yield__() __asm__ volatile( "" ::: "memory" )
13 #define PostEffect__(X, Y) __extension__({ int tmp__ = (X); (X) = (Y); tmp__; })
14 #else
15 #define INLINE__ static
16 static int tmp__;
17 #define PostEffect__(X, Y) (tmp__ = (X), (X) = (Y), tmp__)
18 #define Yield__()
19 #endif
20 
28 class PWM32 {
29 public:
30  static const int Resolution = 8200; //8.2 uS @80MHz
31 
32  PWM32() {
33  command = 0;
34  argument_0 = 0;
35  argument_1 = 0;
36  argument_2 = 0;
37  cog = 0;
38  }
39 
42  void Start(void) {
43  Stop();
44 
45  /*
46  volatile void * asm_reference = NULL;
47  __asm__ volatile ( "mov %[asm_reference], #PWM32_Entry \n\t"
48  : [asm_reference] "+r" (asm_reference));
49  cog = cognew(_load_start_pwm32_cog, &command) + 1;
50  */
51 
52 
53  cog = cognew((int) (&(*(int *) dat())), (int) (&command)) + 1;
54  }
55 
58  void Stop(void) {
59  if (cog != 0) {
60 
61  cogstop(cog - 1);
62  cog = 0;
63  }
64  }
65 
72  void Duty(int pin, int duty_cycle, int period) {
73  if (period != 0) {
74  if (duty_cycle == 0) {
75  Dutymode(pin, 2);
76  Statemode(pin, 1);
77  }
78  if (duty_cycle == 100) {
79  Dutymode(pin, 1);
80  Statemode(pin, 1);
81  }
82  if ((duty_cycle != 0) && (duty_cycle != 100)) {
83  int Baseperiod = ((period * 1000) / Resolution);
84  int Ton = ((duty_cycle * Baseperiod) / 100);
85  int Toff = (Baseperiod - Ton);
86  if (Ton == 0) {
87  Dutymode(pin, 1);
88  }
89  if (Toff == 0) {
90  Dutymode(pin, 2);
91  }
92  if ((Ton == 0) && (Toff == 0)) {
93  Statemode(pin, 0);
94  }
95  if ((Ton != 0) || (Toff != 0)) {
96  InternalPWM(pin, Ton, Toff);
97  Dutymode(pin, 0);
98  }
99  }
100  } else {
101  Statemode(pin, 0);
102  }
103  }
104 
111  void Servo(int pin, int pulse_width) {
112  int Ton, Toff;
113  if (pulse_width != 0) {
114  Ton = ((pulse_width * 1000) / Resolution);
115  Toff = (((20000 - pulse_width) * 1000) / Resolution);
116  InternalPWM(pin, Ton, Toff);
117  } else {
118  Statemode(pin, 0);
119  }
120  }
121 
129  void PWM(int pin, int on_time, int off_time) {
130  InternalPWM(pin, (on_time * 1000) / Resolution, (off_time * 1000) / Resolution);
131  }
132 
133 private:
134 
135  static const int Updatetontoff = 1;
136  static const int Io_state = 2;
137  static const int Dutyoverride = 3;
138  static const int Syncphase = 4;
139  static const int Duty_default = 0;
140  static const int Duty_100 = 1;
141  static const int Duty_0 = 2;
142  static const int Disablepin = 0;
143  static const int Enablepin = 1;
144 
145  int cog;
146 
147  //These four variables must remain in the same order.
148  volatile int command, argument_0, argument_1, argument_2;
149 
150  void Statemode(int Pin, int State) {
151  argument_0 = Pin;
152  argument_1 = State;
153  command = Io_state;
154  while (!(command == 0)) {
155  Yield__();
156  }
157  }
158 
159  void Dutymode(int Pin, int Mode) {
160  argument_0 = Pin;
161  argument_1 = Mode;
162  command = Dutyoverride;
163  while (!(command == 0)) {
164  Yield__();
165  }
166 
167  }
168 
169 
170  // Phasesync is untested...
171 
172  void Phasesync(int Pin1, int Pin2, int Phase) {
173  Phase = ((Phase * 1000) / Resolution);
174  argument_0 = Pin1;
175  argument_1 = Pin2;
176  argument_2 = Phase;
177  command = Syncphase;
178  while (!(command == 0)) {
179  Yield__();
180  }
181  }
182 
190  void InternalPWM(int Pin, int Ontime, int Offtime) {
191  if ((Ontime == 0) && (Offtime == 0)) {
192  Statemode(Pin, 0);
193  }
194  if (Ontime == 0) {
195  Dutymode(Pin, 2);
196  Statemode(Pin, 1);
197  }
198  if (Offtime == 0) {
199  Dutymode(Pin, 1);
200  Statemode(Pin, 1);
201  }
202  if ((Ontime == 0) && (Offtime == 0)) {
203  Statemode(Pin, 0);
204  }
205  if ((Ontime != 0) && (Offtime != 0)) {
206  argument_0 = Pin;
207  argument_1 = (Ontime - 1);
208  argument_2 = (Offtime - 1);
209  command = Updatetontoff;
210  while (!(command == 0)) {
211  Yield__();
212  }
213  Statemode(Pin, 1);
214  Dutymode(Pin, 0);
215  }
216  }
217 
218  static volatile uint8_t * dat() {
219  static volatile uint8_t data[] = {
220  0xf0, 0xe1, 0xbd, 0xa0, 0xf0, 0xd8, 0xbd, 0xa0, 0x04, 0xe0, 0xfd, 0x80, 0xf0, 0xda, 0xbd, 0xa0,
221  0x04, 0xe0, 0xfd, 0x80, 0xf0, 0xdc, 0xbd, 0xa0, 0x04, 0xe0, 0xfd, 0x80, 0xf0, 0xde, 0xbd, 0xa0,
222  0x01, 0x28, 0xfe, 0x85, 0xf4, 0xe8, 0xb2, 0x6e, 0x34, 0x29, 0xa2, 0xa0, 0x54, 0x29, 0x92, 0xa0,
223  0x01, 0x2a, 0xfe, 0x85, 0xf5, 0xea, 0xb2, 0x6e, 0x35, 0x2b, 0xa2, 0xa0, 0x55, 0x2b, 0x92, 0xa0,
224  0x01, 0x2c, 0xfe, 0x85, 0xf6, 0xec, 0xb2, 0x6e, 0x36, 0x2d, 0xa2, 0xa0, 0x56, 0x2d, 0x92, 0xa0,
225  0x01, 0x2e, 0xfe, 0x85, 0xf7, 0xee, 0xb2, 0x6e, 0x37, 0x2f, 0xa2, 0xa0, 0x57, 0x2f, 0x92, 0xa0,
226  0x01, 0x30, 0xfe, 0x85, 0xf8, 0xf0, 0xb2, 0x6e, 0x38, 0x31, 0xa2, 0xa0, 0x58, 0x31, 0x92, 0xa0,
227  0x01, 0x32, 0xfe, 0x85, 0xf9, 0xf2, 0xb2, 0x6e, 0x39, 0x33, 0xa2, 0xa0, 0x59, 0x33, 0x92, 0xa0,
228  0x01, 0x34, 0xfe, 0x85, 0xfa, 0xf4, 0xb2, 0x6e, 0x3a, 0x35, 0xa2, 0xa0, 0x5a, 0x35, 0x92, 0xa0,
229  0x01, 0x36, 0xfe, 0x85, 0xfb, 0xf6, 0xb2, 0x6e, 0x3b, 0x37, 0xa2, 0xa0, 0x5b, 0x37, 0x92, 0xa0,
230  0x01, 0x38, 0xfe, 0x85, 0xfc, 0xf8, 0xb2, 0x6e, 0x3c, 0x39, 0xa2, 0xa0, 0x5c, 0x39, 0x92, 0xa0,
231  0x01, 0x3a, 0xfe, 0x85, 0xfd, 0xfa, 0xb2, 0x6e, 0x3d, 0x3b, 0xa2, 0xa0, 0x5d, 0x3b, 0x92, 0xa0,
232  0x01, 0x3c, 0xfe, 0x85, 0xfe, 0xfc, 0xb2, 0x6e, 0x3e, 0x3d, 0xa2, 0xa0, 0x5e, 0x3d, 0x92, 0xa0,
233  0x01, 0x3e, 0xfe, 0x85, 0xff, 0xfe, 0xb2, 0x6e, 0x3f, 0x3f, 0xa2, 0xa0, 0x5f, 0x3f, 0x92, 0xa0,
234  0x01, 0x40, 0xfe, 0x85, 0x00, 0x01, 0xb3, 0x6e, 0x40, 0x41, 0xa2, 0xa0, 0x60, 0x41, 0x92, 0xa0,
235  0x01, 0x42, 0xfe, 0x85, 0x01, 0x03, 0xb3, 0x6e, 0x41, 0x43, 0xa2, 0xa0, 0x61, 0x43, 0x92, 0xa0,
236  0x01, 0x44, 0xfe, 0x85, 0x02, 0x05, 0xb3, 0x6e, 0x42, 0x45, 0xa2, 0xa0, 0x62, 0x45, 0x92, 0xa0,
237  0x01, 0x46, 0xfe, 0x85, 0x03, 0x07, 0xb3, 0x6e, 0x43, 0x47, 0xa2, 0xa0, 0x63, 0x47, 0x92, 0xa0,
238  0x01, 0x48, 0xfe, 0x85, 0x04, 0x09, 0xb3, 0x6e, 0x44, 0x49, 0xa2, 0xa0, 0x64, 0x49, 0x92, 0xa0,
239  0x01, 0x4a, 0xfe, 0x85, 0x05, 0x0b, 0xb3, 0x6e, 0x45, 0x4b, 0xa2, 0xa0, 0x65, 0x4b, 0x92, 0xa0,
240  0x01, 0x4c, 0xfe, 0x85, 0x06, 0x0d, 0xb3, 0x6e, 0x46, 0x4d, 0xa2, 0xa0, 0x66, 0x4d, 0x92, 0xa0,
241  0x01, 0x4e, 0xfe, 0x85, 0x07, 0x0f, 0xb3, 0x6e, 0x47, 0x4f, 0xa2, 0xa0, 0x67, 0x4f, 0x92, 0xa0,
242  0x01, 0x50, 0xfe, 0x85, 0x08, 0x11, 0xb3, 0x6e, 0x48, 0x51, 0xa2, 0xa0, 0x68, 0x51, 0x92, 0xa0,
243  0x01, 0x52, 0xfe, 0x85, 0x09, 0x13, 0xb3, 0x6e, 0x49, 0x53, 0xa2, 0xa0, 0x69, 0x53, 0x92, 0xa0,
244  0x01, 0x54, 0xfe, 0x85, 0x0a, 0x15, 0xb3, 0x6e, 0x4a, 0x55, 0xa2, 0xa0, 0x6a, 0x55, 0x92, 0xa0,
245  0x01, 0x56, 0xfe, 0x85, 0x0b, 0x17, 0xb3, 0x6e, 0x4b, 0x57, 0xa2, 0xa0, 0x6b, 0x57, 0x92, 0xa0,
246  0x01, 0x58, 0xfe, 0x85, 0x0c, 0x19, 0xb3, 0x6e, 0x4c, 0x59, 0xa2, 0xa0, 0x6c, 0x59, 0x92, 0xa0,
247  0x01, 0x5a, 0xfe, 0x85, 0x0d, 0x1b, 0xb3, 0x6e, 0x4d, 0x5b, 0xa2, 0xa0, 0x6d, 0x5b, 0x92, 0xa0,
248  0x01, 0x5c, 0xfe, 0x85, 0x0e, 0x1d, 0xb3, 0x6e, 0x4e, 0x5d, 0xa2, 0xa0, 0x6e, 0x5d, 0x92, 0xa0,
249  0x01, 0x5e, 0xfe, 0x85, 0x0f, 0x1f, 0xb3, 0x6e, 0x4f, 0x5f, 0xa2, 0xa0, 0x6f, 0x5f, 0x92, 0xa0,
250  0x01, 0x60, 0xfe, 0x85, 0x10, 0x21, 0xb3, 0x6e, 0x50, 0x61, 0xa2, 0xa0, 0x70, 0x61, 0x92, 0xa0,
251  0x01, 0x62, 0xfe, 0x85, 0x11, 0x23, 0xb3, 0x6e, 0x51, 0x63, 0xa2, 0xa0, 0x71, 0x63, 0x92, 0xa0,
252  0x01, 0x64, 0xfe, 0x85, 0x12, 0x25, 0xb3, 0x6e, 0x52, 0x65, 0xa2, 0xa0, 0x72, 0x65, 0x92, 0xa0,
253  0x01, 0x66, 0xfe, 0x85, 0x13, 0x27, 0xb3, 0x6e, 0x53, 0x67, 0xa2, 0xa0, 0x73, 0x67, 0x92, 0xa0,
254  0x74, 0xe1, 0xbd, 0xa0, 0x75, 0xe1, 0xbd, 0x68, 0x76, 0xe1, 0xbd, 0x68, 0x77, 0xe1, 0xbd, 0x68,
255  0x78, 0xe1, 0xbd, 0x68, 0x79, 0xe1, 0xbd, 0x68, 0x7a, 0xe1, 0xbd, 0x68, 0x7b, 0xe1, 0xbd, 0x68,
256  0x7c, 0xe1, 0xbd, 0x68, 0x7d, 0xe1, 0xbd, 0x68, 0x7e, 0xe1, 0xbd, 0x68, 0x7f, 0xe1, 0xbd, 0x68,
257  0x80, 0xe1, 0xbd, 0x68, 0x81, 0xe1, 0xbd, 0x68, 0x82, 0xe1, 0xbd, 0x68, 0x83, 0xe1, 0xbd, 0x68,
258  0x84, 0xe1, 0xbd, 0x68, 0x85, 0xe1, 0xbd, 0x68, 0x86, 0xe1, 0xbd, 0x68, 0x87, 0xe1, 0xbd, 0x68,
259  0x88, 0xe1, 0xbd, 0x68, 0x89, 0xe1, 0xbd, 0x68, 0x8a, 0xe1, 0xbd, 0x68, 0x8b, 0xe1, 0xbd, 0x68,
260  0x8c, 0xe1, 0xbd, 0x68, 0x8d, 0xe1, 0xbd, 0x68, 0x8e, 0xe1, 0xbd, 0x68, 0x8f, 0xe1, 0xbd, 0x68,
261  0x90, 0xe1, 0xbd, 0x68, 0x91, 0xe1, 0xbd, 0x68, 0x92, 0xe1, 0xbd, 0x68, 0x93, 0xe1, 0xbd, 0x68,
262  0xf0, 0xe8, 0xbf, 0xa0, 0xec, 0xe0, 0xbd, 0x0a, 0x08, 0x00, 0x68, 0x5c, 0x01, 0xe0, 0x7d, 0x6e,
263  0xb5, 0x00, 0x68, 0x5c, 0x02, 0xe0, 0x7d, 0x6e, 0xc0, 0x00, 0x68, 0x5c, 0x03, 0xe0, 0x7d, 0x6e,
264  0xca, 0x00, 0x68, 0x5c, 0x04, 0xe0, 0x7d, 0x6e, 0xd9, 0x00, 0x68, 0x5c, 0xec, 0xd4, 0x3d, 0x08,
265  0x08, 0x00, 0x7c, 0x5c, 0xed, 0xe2, 0xbd, 0x08, 0xee, 0xe4, 0xbd, 0x08, 0x34, 0xe3, 0xfd, 0x80,
266  0xf1, 0x7c, 0xbd, 0x54, 0xef, 0xe6, 0xbd, 0x08, 0x20, 0xe2, 0xfd, 0x80, 0xf1, 0x7a, 0xbd, 0x54,
267  0xec, 0xd4, 0x3d, 0x08, 0xf2, 0x00, 0xbc, 0xa0, 0xf3, 0x00, 0xbc, 0xa0, 0x08, 0x00, 0x7c, 0x5c,
268  0xed, 0xe2, 0xbd, 0x08, 0xee, 0xe4, 0xbd, 0x08, 0x01, 0xe0, 0xfd, 0xa0, 0xf1, 0xe0, 0xbd, 0x2c,
269  0xec, 0xd4, 0x3d, 0x08, 0x01, 0xe4, 0x7d, 0x62, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xec, 0x97, 0x68,
270  0xf0, 0xec, 0xab, 0x64, 0x08, 0x00, 0x7c, 0x5c, 0xed, 0xe2, 0xbd, 0x08, 0xee, 0xe4, 0xbd, 0x08,
271  0xf1, 0xe0, 0xbd, 0xa0, 0x02, 0xe0, 0xfd, 0x2c, 0x09, 0xe0, 0xfd, 0x80, 0xf0, 0xac, 0xbd, 0x54,
272  0x00, 0x00, 0x00, 0x00, 0xe9, 0xe0, 0xbd, 0xa0, 0x01, 0xe4, 0x7d, 0x6e, 0xe7, 0xe0, 0xa9, 0xa0,
273  0x02, 0xe4, 0x7d, 0x6e, 0xe8, 0xe0, 0xa9, 0xa0, 0xf0, 0x00, 0xbc, 0x58, 0xec, 0xd4, 0x3d, 0x08,
274  0x08, 0x00, 0x7c, 0x5c, 0xed, 0xe0, 0xbd, 0x08, 0x14, 0xe1, 0xfd, 0x80, 0xf0, 0xba, 0xbd, 0x50,
275  0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xbd, 0xa0, 0xef, 0xd6, 0xbd, 0x08, 0xeb, 0xe0, 0xbd, 0x80,
276  0xee, 0xd6, 0xbd, 0x08, 0x14, 0xd7, 0xfd, 0x80, 0xeb, 0xc8, 0xbd, 0x54, 0x00, 0x00, 0x00, 0x00,
277  0xf0, 0x00, 0xbc, 0xa0, 0xec, 0xd4, 0x3d, 0x08, 0x08, 0x00, 0x7c, 0x5c, 0xd1, 0x00, 0x00, 0x00,
278  0xc9, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
279  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
280  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
281  0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
282  0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
283  0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00,
284  0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,
285  0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00,
286  0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x80, 0x00,
287  0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08,
288  0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x80,
289  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
290  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
291  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
292  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
293  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
294  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
295  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
296  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
297  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
298  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
299  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
300  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
301  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
302  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
303  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
304  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
305  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
306  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
307  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
308  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
309  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
310  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
311  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
312  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
313  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
314  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
315  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
316  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
317  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
318  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
319  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
320  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
321  };
322  return data;
323  }
324 
325 
326 
327 
328 
329 
330 };
331 
332 
333 
334 
335 
336 #endif // libpropeller_pwm32_h__