onoff.c


1
#include "main.h"
2
3
void init_onoff(void) {
4
5
  // A Channels
6
  PWMADDR |= (1<<PWM1PIN);
7
  PWMADDR |= (1<<PWM2PIN);
8
  PWMADDR |= (1<<PWM3PIN);
9
  PWMADDR |= (1<<PWM4PIN);
10
  PWMADDR |= (1<<PWM5PIN);
11
  PWMADDR |= (1<<PWM6PIN);
12
  PWMADDR |= (1<<PWM7PIN);
13
  PWMADDR |= (1<<PWM8PIN);
14
  
15
  // C Channels
16
  PWMCDDR |= (1<<PWM9PIN);
17
  PWMCDDR |= (1<<PWM10PIN);
18
  PWMCDDR |= (1<<PWM11PIN);
19
  PWMCDDR |= (1<<PWM12PIN);
20
  PWMCDDR |= (1<<PWM13PIN);
21
  PWMCDDR |= (1<<PWM14PIN);
22
  PWMCDDR |= (1<<PWM15PIN);
23
  PWMCDDR |= (1<<PWM16PIN);
24
  
25
  // B Channels
26
  PWMBDDR |= (1<<PWM17PIN);
27
  PWMBDDR |= (1<<PWM18PIN);
28
  PWMBDDR |= (1<<PWM19PIN);
29
  PWMBDDR |= (1<<PWM20PIN);
30
  PWMBDDR |= (1<<PWM21PIN);
31
  PWMBDDR |= (1<<PWM22PIN);
32
  PWMBDDR |= (1<<PWM23PIN);
33
  PWMBDDR |= (1<<PWM24PIN);
34
  
35
  // E Channels
36
  PWMEDDR |= (1<<PWM25PIN);
37
  PWMEDDR |= (1<<PWM26PIN);
38
  PWMEDDR |= (1<<PWM27PIN);
39
  PWMEDDR |= (1<<PWM28PIN);
40
  PWMEDDR |= (1<<PWM29PIN);
41
  PWMEDDR |= (1<<PWM30PIN);
42
  PWMEDDR |= (1<<PWM31PIN);
43
  PWMEDDR |= (1<<PWM32PIN);
44
45
}
46
47
void init_onoffchannels(void) {
48
49
  // A Channels
50
  PWMAPORT &= ~(1<<PWM1PIN);
51
  PWMAPORT &= ~(1<<PWM2PIN);
52
  PWMAPORT &= ~(1<<PWM3PIN);
53
  PWMAPORT &= ~(1<<PWM4PIN);
54
  PWMAPORT &= ~(1<<PWM5PIN);
55
  PWMAPORT &= ~(1<<PWM6PIN);
56
  PWMAPORT &= ~(1<<PWM7PIN);
57
  PWMAPORT &= ~(1<<PWM8PIN);
58
  
59
  // C Channels
60
  PWMCPORT &= ~(1<<PWM9PIN);
61
  PWMCPORT &= ~(1<<PWM10PIN);
62
  PWMCPORT &= ~(1<<PWM11PIN);
63
  PWMCPORT &= ~(1<<PWM12PIN);
64
  PWMCPORT &= ~(1<<PWM13PIN);
65
  PWMCPORT &= ~(1<<PWM14PIN);
66
  PWMCPORT &= ~(1<<PWM15PIN);
67
  PWMCPORT &= ~(1<<PWM16PIN);
68
  
69
  // B Channels
70
  PWMBPORT &= ~(1<<PWM17PIN);
71
  PWMBPORT &= ~(1<<PWM18PIN);
72
  PWMBPORT &= ~(1<<PWM19PIN);
73
  PWMBPORT &= ~(1<<PWM20PIN);
74
  PWMBPORT &= ~(1<<PWM21PIN);
75
  PWMBPORT &= ~(1<<PWM22PIN);
76
  PWMBPORT &= ~(1<<PWM23PIN);
77
  PWMBPORT &= ~(1<<PWM24PIN);
78
  
79
  // E Channels
80
  PWMEPORT &= ~(1<<PWM25PIN);
81
  PWMEPORT &= ~(1<<PWM26PIN);
82
  PWMEPORT &= ~(1<<PWM27PIN);
83
  PWMEPORT &= ~(1<<PWM28PIN);
84
  PWMEPORT &= ~(1<<PWM29PIN);
85
  PWMEPORT &= ~(1<<PWM30PIN);
86
  PWMEPORT &= ~(1<<PWM31PIN);
87
  PWMEPORT &= ~(1<<PWM32PIN);
88
89
}
90
91
void init_onoffmodes(void) {
92
  
93
  // Init OFF Mode
94
  for (int ia = 0; ia < NUM_OF_ONOFF_MODES; ia++) {
95
    for(int i = 0; i < NUM_OF_CHANS; i++) {
96
      onoffmodes[0][i] = 0;
97
    }
98
  }
99
}
100
101
void onoff(int channelnumber) {
102
  switch(channelnumber) {
103
    case 0:
104
        if (IOs[channelnumber] == 1) {
105
          PWMAPORT &= ~(1<<PWM1PIN);
106
          isIOs[channelnumber] = 0;
107
        } else {
108
          PWMAPORT |= (1<<PWM1PIN);
109
          isIOs[channelnumber] = 1;
110
        }
111
      break;
112
      
113
    case 1:
114
        if (IOs[channelnumber] == 1) {
115
          PWMAPORT &= ~(1<<PWM2PIN);
116
          isIOs[channelnumber] = 0;
117
        } else {
118
          PWMAPORT |= (1<<PWM2PIN);
119
          isIOs[channelnumber] = 1;
120
        }
121
      break;
122
      
123
    case 2:
124
        if (IOs[channelnumber] == 1) {
125
          PWMAPORT &= ~(1<<PWM3PIN);
126
       isIOs[channelnumber] = 0;
127
        } else {
128
          PWMAPORT |= (1<<PWM3PIN);
129
          isIOs[channelnumber] = 1;
130
        }
131
      break;
132
      
133
    case 3:
134
        if (IOs[channelnumber] == 1) {
135
          PWMAPORT &= ~(1<<PWM4PIN);
136
          isIOs[channelnumber] = 0;
137
        } else {
138
          PWMAPORT |= (1<<PWM4PIN);
139
          isIOs[channelnumber] = 1;
140
        }
141
      break;
142
      
143
    case 4:
144
        if (IOs[channelnumber] == 1) {
145
          PWMAPORT &= ~(1<<PWM5PIN);
146
          isIOs[channelnumber] = 0;
147
        } else {
148
          PWMAPORT |= (1<<PWM5PIN);
149
          isIOs[channelnumber] = 1;
150
        }
151
      break;
152
      
153
    case 5:
154
        if (IOs[channelnumber] == 1) {
155
          PWMAPORT &= ~(1<<PWM6PIN);
156
          isIOs[channelnumber] = 0;
157
        } else {
158
          PWMAPORT |= (1<<PWM6PIN);
159
          isIOs[channelnumber] = 1;
160
        }
161
      break;
162
      
163
    case 6:
164
        if (IOs[channelnumber] == 1) {
165
          PWMAPORT &= ~(1<<PWM7PIN);
166
          isIOs[channelnumber] = 0;
167
        } else {
168
          PWMAPORT |= (1<<PWM7PIN);
169
          isIOs[channelnumber] = 1;
170
        }
171
      break;
172
      
173
    case 7:
174
        if (IOs[channelnumber] == 1) {
175
          PWMAPORT &= ~(1<<PWM8PIN);
176
          isIOs[channelnumber] = 0;
177
        } else {
178
          PWMAPORT |= (1<<PWM8PIN);
179
          isIOs[channelnumber] = 1;
180
        }
181
      break;
182
      
183
    case 8:
184
        if (IOs[channelnumber] == 1) {
185
          PWMCPORT &= ~(1<<PWM9PIN);
186
          isIOs[channelnumber] = 0;
187
        } else {
188
          PWMCPORT |= (1<<PWM9PIN);
189
          isIOs[channelnumber] = 1;
190
        }
191
      break;
192
      
193
    case 9:
194
        if (IOs[channelnumber] == 1) {
195
          PWMCPORT &= ~(1<<PWM10PIN);
196
          isIOs[channelnumber] = 0;
197
        } else {
198
          PWMCPORT |= (1<<PWM10PIN);
199
          isIOs[channelnumber] = 1;
200
        }
201
      break;
202
      
203
    case 10:
204
        if (IOs[channelnumber] == 1) {
205
          PWMCPORT &= ~(1<<PWM11PIN);
206
          isIOs[channelnumber] = 0;
207
        } else {
208
          PWMCPORT |= (1<<PWM11PIN);
209
          isIOs[channelnumber] = 1;
210
        }
211
      break;
212
      
213
    case 11:
214
        if (IOs[channelnumber] == 1) {
215
          PWMCPORT &= ~(1<<PWM12PIN);
216
          isIOs[channelnumber] = 0;
217
        } else {
218
          PWMCPORT |= (1<<PWM12PIN);
219
          isIOs[channelnumber] = 1;
220
        }
221
      break;
222
      
223
    case 12:
224
        if (IOs[channelnumber] == 1) {
225
          PWMCPORT &= ~(1<<PWM13PIN);
226
          isIOs[channelnumber] = 0;
227
        } else {
228
          PWMCPORT |= (1<<PWM13PIN);
229
          isIOs[channelnumber] = 1;
230
        }
231
      break;
232
      
233
    case 13:
234
        if (IOs[channelnumber] == 1) {
235
          PWMCPORT &= ~(1<<PWM14PIN);
236
          isIOs[channelnumber] = 0;
237
        } else {
238
          PWMCPORT |= (1<<PWM14PIN);
239
          isIOs[channelnumber] = 1;
240
        }
241
      break;
242
      
243
    case 14:
244
        if (IOs[channelnumber] == 1) {
245
          PWMCPORT &= ~(1<<PWM15PIN);
246
          isIOs[channelnumber] = 0;
247
        } else {
248
          PWMCPORT |= (1<<PWM15PIN);
249
          isIOs[channelnumber] = 1;
250
        }
251
      break;
252
      
253
    case 15:
254
        if (IOs[channelnumber] == 1) {
255
          PWMCPORT &= ~(1<<PWM16PIN);
256
          isIOs[channelnumber] = 0;
257
        } else {
258
          PWMCPORT |= (1<<PWM16PIN);
259
          isIOs[channelnumber] = 1;
260
        }
261
      break;
262
263
    case 16:
264
        if (IOs[channelnumber] == 1) {
265
          PWMAPORT &= ~(1<<PWM17PIN);
266
          isIOs[channelnumber] = 0;
267
        } else {
268
          PWMAPORT |= (1<<PWM17PIN);
269
          isIOs[channelnumber] = 1;
270
        }
271
      break;
272
      
273
    case 17:
274
        if (IOs[channelnumber] == 1) {
275
          PWMAPORT &= ~(1<<PWM18PIN);
276
          isIOs[channelnumber] = 0;
277
        } else {
278
          PWMAPORT |= (1<<PWM18PIN);
279
          isIOs[channelnumber] = 1;
280
        }
281
      break;
282
      
283
    case 18:
284
        if (IOs[channelnumber] == 1) {
285
          PWMAPORT &= ~(1<<PWM19PIN);
286
       isIOs[channelnumber] = 0;
287
        } else {
288
          PWMAPORT |= (1<<PWM19PIN);
289
          isIOs[channelnumber] = 1;
290
        }
291
      break;
292
      
293
    case 19:
294
        if (IOs[channelnumber] == 1) {
295
          PWMAPORT &= ~(1<<PWM20PIN);
296
          isIOs[channelnumber] = 0;
297
        } else {
298
          PWMAPORT |= (1<<PWM20PIN);
299
          isIOs[channelnumber] = 1;
300
        }
301
      break;
302
      
303
    case 20:
304
        if (IOs[channelnumber] == 1) {
305
          PWMAPORT &= ~(1<<PWM21PIN);
306
          isIOs[channelnumber] = 0;
307
        } else {
308
          PWMAPORT |= (1<<PWM21PIN);
309
          isIOs[channelnumber] = 1;
310
        }
311
      break;
312
      
313
    case 21:
314
        if (IOs[channelnumber] == 1) {
315
          PWMAPORT &= ~(1<<PWM22PIN);
316
          isIOs[channelnumber] = 0;
317
        } else {
318
          PWMAPORT |= (1<<PWM22PIN);
319
          isIOs[channelnumber] = 1;
320
        }
321
      break;
322
      
323
    case 22:
324
        if (IOs[channelnumber] == 1) {
325
          PWMAPORT &= ~(1<<PWM23PIN);
326
          isIOs[channelnumber] = 0;
327
        } else {
328
          PWMAPORT |= (1<<PWM23PIN);
329
          isIOs[channelnumber] = 1;
330
        }
331
      break;
332
      
333
    case 23:
334
        if (IOs[channelnumber] == 1) {
335
          PWMAPORT &= ~(1<<PWM24PIN);
336
          isIOs[channelnumber] = 0;
337
        } else {
338
          PWMAPORT |= (1<<PWM24PIN);
339
          isIOs[channelnumber] = 1;
340
        }
341
      break;
342
      
343
    case 24:
344
        if (IOs[channelnumber] == 1) {
345
          PWMCPORT &= ~(1<<PWM25PIN);
346
          isIOs[channelnumber] = 0;
347
        } else {
348
          PWMCPORT |= (1<<PWM25PIN);
349
          isIOs[channelnumber] = 1;
350
        }
351
      break;
352
      
353
    case 25:
354
        if (IOs[channelnumber] == 1) {
355
          PWMCPORT &= ~(1<<PWM26PIN);
356
          isIOs[channelnumber] = 0;
357
        } else {
358
          PWMCPORT |= (1<<PWM26PIN);
359
          isIOs[channelnumber] = 1;
360
        }
361
      break;
362
      
363
    case 26:
364
        if (IOs[channelnumber] == 1) {
365
          PWMCPORT &= ~(1<<PWM27PIN);
366
          isIOs[channelnumber] = 0;
367
        } else {
368
          PWMCPORT |= (1<<PWM27PIN);
369
          isIOs[channelnumber] = 1;
370
        }
371
      break;
372
      
373
    case 27:
374
        if (IOs[channelnumber] == 1) {
375
          PWMCPORT &= ~(1<<PWM28PIN);
376
          isIOs[channelnumber] = 0;
377
        } else {
378
          PWMCPORT |= (1<<PWM28PIN);
379
          isIOs[channelnumber] = 1;
380
        }
381
      break;
382
      
383
    case 28:
384
        if (IOs[channelnumber] == 1) {
385
          PWMCPORT &= ~(1<<PWM29PIN);
386
          isIOs[channelnumber] = 0;
387
        } else {
388
          PWMCPORT |= (1<<PWM29PIN);
389
          isIOs[channelnumber] = 1;
390
        }
391
      break;
392
      
393
    case 29:
394
        if (IOs[channelnumber] == 1) {
395
          PWMCPORT &= ~(1<<PWM30PIN);
396
          isIOs[channelnumber] = 0;
397
        } else {
398
          PWMCPORT |= (1<<PWM30PIN);
399
          isIOs[channelnumber] = 1;
400
        }
401
      break;
402
      
403
    case 30:
404
        if (IOs[channelnumber] == 1) {
405
          PWMCPORT &= ~(1<<PWM31PIN);
406
          isIOs[channelnumber] = 0;
407
        } else {
408
          PWMCPORT |= (1<<PWM31PIN);
409
          isIOs[channelnumber] = 1;
410
        }
411
      break;
412
      
413
    case 31:
414
        if (IOs[channelnumber] == 1) {
415
          PWMCPORT &= ~(1<<PWM32PIN);
416
          isIOs[channelnumber] = 0;
417
        } else {
418
          PWMCPORT |= (1<<PWM32PIN);
419
          isIOs[channelnumber] = 1;
420
        }
421
      break;
422
      
423
    default:
424
      break;    
425
  }
426
}