very preliminary code, pins clearly havent been chosen yet!

Dependencies:   TextLCD mbed

Committer:
gcme93
Date:
Tue Jul 02 09:16:17 2013 +0000
Revision:
0:438bb4b2ba51
Child:
1:0404e9aa397f
Full Code (threetime, doubletime, enable, screen output); NO fill; NO alternate; NO user input

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gcme93 0:438bb4b2ba51 1 #include "mbed.h"
gcme93 0:438bb4b2ba51 2 #include "TextLCD.h"
gcme93 0:438bb4b2ba51 3 #include "trigger.h"
gcme93 0:438bb4b2ba51 4
gcme93 0:438bb4b2ba51 5 unsigned int period;
gcme93 0:438bb4b2ba51 6 unsigned int periododd;
gcme93 0:438bb4b2ba51 7 unsigned int periodeven;
gcme93 0:438bb4b2ba51 8
gcme93 0:438bb4b2ba51 9 void process(void)
gcme93 0:438bb4b2ba51 10 {
gcme93 0:438bb4b2ba51 11 Kick = (KICK==1)? 1:0;
gcme93 0:438bb4b2ba51 12 Snare = (SNARE==1)? 1:0;
gcme93 0:438bb4b2ba51 13 HHOpen = (HHOPEN==1)? 1:0;
gcme93 0:438bb4b2ba51 14 HHClosed = (HHCLOSED==1)? 1:0;
gcme93 0:438bb4b2ba51 15 HiTom = (HITOM==1)? 1:0;
gcme93 0:438bb4b2ba51 16 LoTom = (LOTOM==1)? 1:0;
gcme93 0:438bb4b2ba51 17 Clap = (CLAP==1)? 1:0;
gcme93 0:438bb4b2ba51 18 Block = (BLOCK==1)? 1:0;
gcme93 0:438bb4b2ba51 19
gcme93 0:438bb4b2ba51 20 wait_ms(pulse);
gcme93 0:438bb4b2ba51 21
gcme93 0:438bb4b2ba51 22 Kick=0;
gcme93 0:438bb4b2ba51 23 Snare=0;
gcme93 0:438bb4b2ba51 24 HHOpen=0;
gcme93 0:438bb4b2ba51 25 HHClosed=0;
gcme93 0:438bb4b2ba51 26 HiTom=0;
gcme93 0:438bb4b2ba51 27 LoTom=0;
gcme93 0:438bb4b2ba51 28 Clap=0;
gcme93 0:438bb4b2ba51 29 Block=0;
gcme93 0:438bb4b2ba51 30 }
gcme93 0:438bb4b2ba51 31
gcme93 0:438bb4b2ba51 32 void trigger()
gcme93 0:438bb4b2ba51 33 {
gcme93 0:438bb4b2ba51 34 period = 60000/tempo;
gcme93 0:438bb4b2ba51 35 periododd = (300+swing)*period/300;
gcme93 0:438bb4b2ba51 36 periodeven = (300-swing)*period/300;
gcme93 0:438bb4b2ba51 37
gcme93 0:438bb4b2ba51 38 switch (beat)
gcme93 0:438bb4b2ba51 39 {
gcme93 0:438bb4b2ba51 40 case 1: Beat1=1;
gcme93 0:438bb4b2ba51 41 wait_ms(1);
gcme93 0:438bb4b2ba51 42 process();
gcme93 0:438bb4b2ba51 43 wait_ms(periododd-1-pulse);
gcme93 0:438bb4b2ba51 44 Beat1=0;
gcme93 0:438bb4b2ba51 45 case 2: Beat2=1;
gcme93 0:438bb4b2ba51 46 wait_ms(1);
gcme93 0:438bb4b2ba51 47 process();
gcme93 0:438bb4b2ba51 48 wait_ms(periodeven-1-pulse);
gcme93 0:438bb4b2ba51 49 Beat2=0;
gcme93 0:438bb4b2ba51 50 case 3: Beat3=1;
gcme93 0:438bb4b2ba51 51 wait_ms(1);
gcme93 0:438bb4b2ba51 52 process();
gcme93 0:438bb4b2ba51 53 wait_ms(periododd-1-pulse);
gcme93 0:438bb4b2ba51 54 Beat3=0;
gcme93 0:438bb4b2ba51 55 case 4: Beat4=1;
gcme93 0:438bb4b2ba51 56 wait_ms(1);
gcme93 0:438bb4b2ba51 57 process();
gcme93 0:438bb4b2ba51 58 wait_ms(periodeven-1-pulse);
gcme93 0:438bb4b2ba51 59 Beat4=0;
gcme93 0:438bb4b2ba51 60 case 5: Beat5=1;
gcme93 0:438bb4b2ba51 61 wait_ms(1);
gcme93 0:438bb4b2ba51 62 process();
gcme93 0:438bb4b2ba51 63 wait_ms(periododd-1-pulse);
gcme93 0:438bb4b2ba51 64 Beat5=0;
gcme93 0:438bb4b2ba51 65 case 6: Beat6=1;
gcme93 0:438bb4b2ba51 66 wait_ms(1);
gcme93 0:438bb4b2ba51 67 process();
gcme93 0:438bb4b2ba51 68 wait_ms(periodeven-1-pulse);
gcme93 0:438bb4b2ba51 69 Beat6=0;
gcme93 0:438bb4b2ba51 70 case 7: if (threetime==0)
gcme93 0:438bb4b2ba51 71 {
gcme93 0:438bb4b2ba51 72 Beat7=1;
gcme93 0:438bb4b2ba51 73 wait_ms(1);
gcme93 0:438bb4b2ba51 74 process();
gcme93 0:438bb4b2ba51 75 wait_ms(periododd-1-pulse);
gcme93 0:438bb4b2ba51 76 Beat7=0;
gcme93 0:438bb4b2ba51 77 }
gcme93 0:438bb4b2ba51 78 else
gcme93 0:438bb4b2ba51 79 {};
gcme93 0:438bb4b2ba51 80 case 8: if (threetime==0)
gcme93 0:438bb4b2ba51 81 {
gcme93 0:438bb4b2ba51 82 Beat8=1;
gcme93 0:438bb4b2ba51 83 wait_ms(1);
gcme93 0:438bb4b2ba51 84 process();
gcme93 0:438bb4b2ba51 85 wait_ms(periodeven-1-pulse);
gcme93 0:438bb4b2ba51 86 Beat8=0;
gcme93 0:438bb4b2ba51 87 }
gcme93 0:438bb4b2ba51 88 else
gcme93 0:438bb4b2ba51 89 {};
gcme93 0:438bb4b2ba51 90 }
gcme93 0:438bb4b2ba51 91 }