very preliminary code, pins clearly havent been chosen yet!

Dependencies:   TextLCD mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers trigger.cpp Source File

trigger.cpp

00001 #include "mbed.h"
00002 #include "TextLCD.h"
00003 #include "trigger.h"
00004 
00005 unsigned int period;
00006 unsigned int periododd;
00007 unsigned int periodeven;
00008 
00009 
00010 void process(void)
00011 {
00012 Kick = (KICK==1)? 1:0;
00013 Snare = (SNARE==1)? 1:0;
00014 HHOpen = (HHOPEN==1)? 1:0;
00015 HHClosed = (HHCLOSED==1)? 1:0;
00016 HiTom = (HITOM==1)? 1:0;
00017 LoTom = (LOTOM==1)? 1:0;
00018 Clap = (CLAP==1)? 1:0;
00019 Block = (BLOCK==1)? 1:0;
00020 
00021 wait_ms(pulse);
00022 
00023 Kick=0;
00024 Snare=0;
00025 HHOpen=0;
00026 HHClosed=0;
00027 HiTom=0;
00028 LoTom=0;
00029 Clap=0;
00030 Block=0;
00031 }
00032 
00033 void trigger()
00034 {
00035 period = 60000/tempo;
00036 periododd = (300+swing)*period/300;
00037 periodeven = (300-swing)*period/300;
00038 
00039 switch (beat)
00040 {
00041     case 1: Beat1=1;
00042             wait_ms(1);
00043             process();
00044             wait_ms(periododd-1-pulse);
00045             Beat1=0;
00046     case 2: Beat2=1;
00047             wait_ms(1);
00048             process();
00049             wait_ms(periodeven-1-pulse);
00050             Beat2=0;
00051     case 3: Beat3=1;
00052             wait_ms(1);
00053             process();
00054             wait_ms(periododd-1-pulse);
00055             Beat3=0;
00056     case 4: Beat4=1;
00057             wait_ms(1);
00058             process();
00059             wait_ms(periodeven-1-pulse);
00060             Beat4=0;
00061     case 5: Beat5=1;
00062             wait_ms(1);
00063             process();
00064             wait_ms(periododd-1-pulse);
00065             Beat5=0;
00066     case 6: Beat6=1;
00067             wait_ms(1);
00068             process();
00069             wait_ms(periodeven-1-pulse);
00070             Beat6=0;
00071     case 7: if (threetime==0)
00072             {
00073             Beat7=1;
00074             wait_ms(1);
00075             process();
00076             wait_ms(periododd-1-pulse);
00077             Beat7=0;
00078             }
00079             else
00080             {};
00081     case 8: if (threetime==0)
00082             {
00083             Beat8=1;
00084             wait_ms(1);
00085             process();
00086             wait_ms(periodeven-1-pulse);
00087             Beat8=0;
00088             }
00089             else
00090             {};
00091 }
00092 }