George Cochrane
/
DrumMachine
very preliminary code, pins clearly havent been chosen yet!
trigger.cpp@1:0404e9aa397f, 2013-07-02 (annotated)
- Committer:
- gcme93
- Date:
- Tue Jul 02 17:50:52 2013 +0000
- Revision:
- 1:0404e9aa397f
- Parent:
- 0:438bb4b2ba51
Very preliminary code, pins clearly not chosen yet!
Who changed what in which revision?
User | Revision | Line number | New 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 | 1:0404e9aa397f | 9 | |
gcme93 | 0:438bb4b2ba51 | 10 | void process(void) |
gcme93 | 0:438bb4b2ba51 | 11 | { |
gcme93 | 0:438bb4b2ba51 | 12 | Kick = (KICK==1)? 1:0; |
gcme93 | 0:438bb4b2ba51 | 13 | Snare = (SNARE==1)? 1:0; |
gcme93 | 0:438bb4b2ba51 | 14 | HHOpen = (HHOPEN==1)? 1:0; |
gcme93 | 0:438bb4b2ba51 | 15 | HHClosed = (HHCLOSED==1)? 1:0; |
gcme93 | 0:438bb4b2ba51 | 16 | HiTom = (HITOM==1)? 1:0; |
gcme93 | 0:438bb4b2ba51 | 17 | LoTom = (LOTOM==1)? 1:0; |
gcme93 | 0:438bb4b2ba51 | 18 | Clap = (CLAP==1)? 1:0; |
gcme93 | 0:438bb4b2ba51 | 19 | Block = (BLOCK==1)? 1:0; |
gcme93 | 0:438bb4b2ba51 | 20 | |
gcme93 | 0:438bb4b2ba51 | 21 | wait_ms(pulse); |
gcme93 | 0:438bb4b2ba51 | 22 | |
gcme93 | 0:438bb4b2ba51 | 23 | Kick=0; |
gcme93 | 0:438bb4b2ba51 | 24 | Snare=0; |
gcme93 | 0:438bb4b2ba51 | 25 | HHOpen=0; |
gcme93 | 0:438bb4b2ba51 | 26 | HHClosed=0; |
gcme93 | 0:438bb4b2ba51 | 27 | HiTom=0; |
gcme93 | 0:438bb4b2ba51 | 28 | LoTom=0; |
gcme93 | 0:438bb4b2ba51 | 29 | Clap=0; |
gcme93 | 0:438bb4b2ba51 | 30 | Block=0; |
gcme93 | 0:438bb4b2ba51 | 31 | } |
gcme93 | 0:438bb4b2ba51 | 32 | |
gcme93 | 0:438bb4b2ba51 | 33 | void trigger() |
gcme93 | 0:438bb4b2ba51 | 34 | { |
gcme93 | 0:438bb4b2ba51 | 35 | period = 60000/tempo; |
gcme93 | 0:438bb4b2ba51 | 36 | periododd = (300+swing)*period/300; |
gcme93 | 0:438bb4b2ba51 | 37 | periodeven = (300-swing)*period/300; |
gcme93 | 0:438bb4b2ba51 | 38 | |
gcme93 | 0:438bb4b2ba51 | 39 | switch (beat) |
gcme93 | 0:438bb4b2ba51 | 40 | { |
gcme93 | 0:438bb4b2ba51 | 41 | case 1: Beat1=1; |
gcme93 | 0:438bb4b2ba51 | 42 | wait_ms(1); |
gcme93 | 0:438bb4b2ba51 | 43 | process(); |
gcme93 | 0:438bb4b2ba51 | 44 | wait_ms(periododd-1-pulse); |
gcme93 | 0:438bb4b2ba51 | 45 | Beat1=0; |
gcme93 | 0:438bb4b2ba51 | 46 | case 2: Beat2=1; |
gcme93 | 0:438bb4b2ba51 | 47 | wait_ms(1); |
gcme93 | 0:438bb4b2ba51 | 48 | process(); |
gcme93 | 0:438bb4b2ba51 | 49 | wait_ms(periodeven-1-pulse); |
gcme93 | 0:438bb4b2ba51 | 50 | Beat2=0; |
gcme93 | 0:438bb4b2ba51 | 51 | case 3: Beat3=1; |
gcme93 | 0:438bb4b2ba51 | 52 | wait_ms(1); |
gcme93 | 0:438bb4b2ba51 | 53 | process(); |
gcme93 | 0:438bb4b2ba51 | 54 | wait_ms(periododd-1-pulse); |
gcme93 | 0:438bb4b2ba51 | 55 | Beat3=0; |
gcme93 | 0:438bb4b2ba51 | 56 | case 4: Beat4=1; |
gcme93 | 0:438bb4b2ba51 | 57 | wait_ms(1); |
gcme93 | 0:438bb4b2ba51 | 58 | process(); |
gcme93 | 0:438bb4b2ba51 | 59 | wait_ms(periodeven-1-pulse); |
gcme93 | 0:438bb4b2ba51 | 60 | Beat4=0; |
gcme93 | 0:438bb4b2ba51 | 61 | case 5: Beat5=1; |
gcme93 | 0:438bb4b2ba51 | 62 | wait_ms(1); |
gcme93 | 0:438bb4b2ba51 | 63 | process(); |
gcme93 | 0:438bb4b2ba51 | 64 | wait_ms(periododd-1-pulse); |
gcme93 | 0:438bb4b2ba51 | 65 | Beat5=0; |
gcme93 | 0:438bb4b2ba51 | 66 | case 6: Beat6=1; |
gcme93 | 0:438bb4b2ba51 | 67 | wait_ms(1); |
gcme93 | 0:438bb4b2ba51 | 68 | process(); |
gcme93 | 0:438bb4b2ba51 | 69 | wait_ms(periodeven-1-pulse); |
gcme93 | 0:438bb4b2ba51 | 70 | Beat6=0; |
gcme93 | 0:438bb4b2ba51 | 71 | case 7: if (threetime==0) |
gcme93 | 0:438bb4b2ba51 | 72 | { |
gcme93 | 0:438bb4b2ba51 | 73 | Beat7=1; |
gcme93 | 0:438bb4b2ba51 | 74 | wait_ms(1); |
gcme93 | 0:438bb4b2ba51 | 75 | process(); |
gcme93 | 0:438bb4b2ba51 | 76 | wait_ms(periododd-1-pulse); |
gcme93 | 0:438bb4b2ba51 | 77 | Beat7=0; |
gcme93 | 0:438bb4b2ba51 | 78 | } |
gcme93 | 0:438bb4b2ba51 | 79 | else |
gcme93 | 0:438bb4b2ba51 | 80 | {}; |
gcme93 | 0:438bb4b2ba51 | 81 | case 8: if (threetime==0) |
gcme93 | 0:438bb4b2ba51 | 82 | { |
gcme93 | 0:438bb4b2ba51 | 83 | Beat8=1; |
gcme93 | 0:438bb4b2ba51 | 84 | wait_ms(1); |
gcme93 | 0:438bb4b2ba51 | 85 | process(); |
gcme93 | 0:438bb4b2ba51 | 86 | wait_ms(periodeven-1-pulse); |
gcme93 | 0:438bb4b2ba51 | 87 | Beat8=0; |
gcme93 | 0:438bb4b2ba51 | 88 | } |
gcme93 | 0:438bb4b2ba51 | 89 | else |
gcme93 | 0:438bb4b2ba51 | 90 | {}; |
gcme93 | 0:438bb4b2ba51 | 91 | } |
gcme93 | 0:438bb4b2ba51 | 92 | } |