George Cochrane
/
DrumMachine
very preliminary code, pins clearly havent been chosen yet!
Diff: trigger.cpp
- Revision:
- 0:438bb4b2ba51
- Child:
- 1:0404e9aa397f
diff -r 000000000000 -r 438bb4b2ba51 trigger.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/trigger.cpp Tue Jul 02 09:16:17 2013 +0000 @@ -0,0 +1,91 @@ +#include "mbed.h" +#include "TextLCD.h" +#include "trigger.h" + +unsigned int period; +unsigned int periododd; +unsigned int periodeven; + +void process(void) +{ +Kick = (KICK==1)? 1:0; +Snare = (SNARE==1)? 1:0; +HHOpen = (HHOPEN==1)? 1:0; +HHClosed = (HHCLOSED==1)? 1:0; +HiTom = (HITOM==1)? 1:0; +LoTom = (LOTOM==1)? 1:0; +Clap = (CLAP==1)? 1:0; +Block = (BLOCK==1)? 1:0; + +wait_ms(pulse); + +Kick=0; +Snare=0; +HHOpen=0; +HHClosed=0; +HiTom=0; +LoTom=0; +Clap=0; +Block=0; +} + +void trigger() +{ +period = 60000/tempo; +periododd = (300+swing)*period/300; +periodeven = (300-swing)*period/300; + +switch (beat) +{ + case 1: Beat1=1; + wait_ms(1); + process(); + wait_ms(periododd-1-pulse); + Beat1=0; + case 2: Beat2=1; + wait_ms(1); + process(); + wait_ms(periodeven-1-pulse); + Beat2=0; + case 3: Beat3=1; + wait_ms(1); + process(); + wait_ms(periododd-1-pulse); + Beat3=0; + case 4: Beat4=1; + wait_ms(1); + process(); + wait_ms(periodeven-1-pulse); + Beat4=0; + case 5: Beat5=1; + wait_ms(1); + process(); + wait_ms(periododd-1-pulse); + Beat5=0; + case 6: Beat6=1; + wait_ms(1); + process(); + wait_ms(periodeven-1-pulse); + Beat6=0; + case 7: if (threetime==0) + { + Beat7=1; + wait_ms(1); + process(); + wait_ms(periododd-1-pulse); + Beat7=0; + } + else + {}; + case 8: if (threetime==0) + { + Beat8=1; + wait_ms(1); + process(); + wait_ms(periodeven-1-pulse); + Beat8=0; + } + else + {}; +} +} \ No newline at end of file