Random terror phrases

Dependencies:   EFM32_CapSenseSlider EFM32_SegmentLCD mbed

Fork of EMF32-Segment-Touch-Demo by Max Scordamaglia

Committer:
MaxScorda
Date:
Tue Sep 29 14:04:48 2015 +0000
Revision:
2:9c22b1264236
1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MaxScorda 2:9c22b1264236 1 #include <string>
MaxScorda 2:9c22b1264236 2
MaxScorda 2:9c22b1264236 3
MaxScorda 2:9c22b1264236 4 char* string2char(string sttde)
MaxScorda 2:9c22b1264236 5 {
MaxScorda 2:9c22b1264236 6 //ora aggiunge comunque l'EOS. Decidere se parametrizzare
MaxScorda 2:9c22b1264236 7 //sttde=addEOS(sttde);
MaxScorda 2:9c22b1264236 8 char *cstr = new char[sttde.length() + 1];
MaxScorda 2:9c22b1264236 9 strcpy(cstr, sttde.c_str());
MaxScorda 2:9c22b1264236 10 // delete [] cstr;
MaxScorda 2:9c22b1264236 11 return cstr;
MaxScorda 2:9c22b1264236 12 }
MaxScorda 2:9c22b1264236 13
MaxScorda 2:9c22b1264236 14 //****************** FUNZIONI STANDARD NON MODIFICATE
MaxScorda 2:9c22b1264236 15 /**
MaxScorda 2:9c22b1264236 16 * Callback for pushbutton interrupt
MaxScorda 2:9c22b1264236 17 */
MaxScorda 2:9c22b1264236 18
MaxScorda 2:9c22b1264236 19 void symbolGest()
MaxScorda 2:9c22b1264236 20 {
MaxScorda 2:9c22b1264236 21 if (count==7) {
MaxScorda 2:9c22b1264236 22 segmentDisplay.Symbol(LCD_SYMBOL_GECKO, true);
MaxScorda 2:9c22b1264236 23 segmentDisplay.Write("GeckoOn");
MaxScorda 2:9c22b1264236 24 pc.printf("Gecko! \n\r");
MaxScorda 2:9c22b1264236 25 } else {
MaxScorda 2:9c22b1264236 26 segmentDisplay.Symbol(LCD_SYMBOL_GECKO, false);
MaxScorda 2:9c22b1264236 27 if (count%2==0) segmentDisplay.Write("Scorda");
MaxScorda 2:9c22b1264236 28 else segmentDisplay.Write("TataGek");
MaxScorda 2:9c22b1264236 29 }
MaxScorda 2:9c22b1264236 30 }
MaxScorda 2:9c22b1264236 31
MaxScorda 2:9c22b1264236 32
MaxScorda 2:9c22b1264236 33 void ledToggler(void)
MaxScorda 2:9c22b1264236 34 {
MaxScorda 2:9c22b1264236 35 myled1 = !myled1;
MaxScorda 2:9c22b1264236 36 }
MaxScorda 2:9c22b1264236 37
MaxScorda 2:9c22b1264236 38 void ledTogglerGen(void)
MaxScorda 2:9c22b1264236 39 {
MaxScorda 2:9c22b1264236 40 myled0 = !myled0;
MaxScorda 2:9c22b1264236 41 segmentDisplay.Symbol(LCD_SYMBOL_GECKO, false);
MaxScorda 2:9c22b1264236 42 myled1=1;
MaxScorda 2:9c22b1264236 43 ledTicker1.detach();
MaxScorda 2:9c22b1264236 44 }
MaxScorda 2:9c22b1264236 45
MaxScorda 2:9c22b1264236 46
MaxScorda 2:9c22b1264236 47 void timeDisp()
MaxScorda 2:9c22b1264236 48 {
MaxScorda 2:9c22b1264236 49 seconds++;
MaxScorda 2:9c22b1264236 50 uint32_t clockValue = ((seconds / 60) % 60) * 100 + (seconds % 60);
MaxScorda 2:9c22b1264236 51 segmentDisplay.Number(clockValue);
MaxScorda 2:9c22b1264236 52 segmentDisplay.Symbol(LCD_SYMBOL_COL10, seconds & 0x1);
MaxScorda 2:9c22b1264236 53
MaxScorda 2:9c22b1264236 54 }
MaxScorda 2:9c22b1264236 55
MaxScorda 2:9c22b1264236 56 /**
MaxScorda 2:9c22b1264236 57 * Callback for display
MaxScorda 2:9c22b1264236 58 */
MaxScorda 2:9c22b1264236 59 void tickerCallback(void)
MaxScorda 2:9c22b1264236 60 {
MaxScorda 2:9c22b1264236 61 float rtime;
MaxScorda 2:9c22b1264236 62 int choicev;
MaxScorda 2:9c22b1264236 63 string mess;
MaxScorda 2:9c22b1264236 64
MaxScorda 2:9c22b1264236 65 //choice
MaxScorda 2:9c22b1264236 66 choicev=rand()%15;
MaxScorda 2:9c22b1264236 67
MaxScorda 2:9c22b1264236 68 switch (choicev) {
MaxScorda 2:9c22b1264236 69 case 0:
MaxScorda 2:9c22b1264236 70 mess="Vai Via";
MaxScorda 2:9c22b1264236 71 break;
MaxScorda 2:9c22b1264236 72 case 1:
MaxScorda 2:9c22b1264236 73 mess="Via!!";
MaxScorda 2:9c22b1264236 74 break;
MaxScorda 2:9c22b1264236 75 case 2:
MaxScorda 2:9c22b1264236 76 mess="Vattene";
MaxScorda 2:9c22b1264236 77 break;
MaxScorda 2:9c22b1264236 78 case 3:
MaxScorda 2:9c22b1264236 79 mess="Aiuto!";
MaxScorda 2:9c22b1264236 80 break;
MaxScorda 2:9c22b1264236 81 case 4:
MaxScorda 2:9c22b1264236 82 mess="Basta!";
MaxScorda 2:9c22b1264236 83 break;
MaxScorda 2:9c22b1264236 84 case 5:
MaxScorda 2:9c22b1264236 85 mess="Paura!";
MaxScorda 2:9c22b1264236 86 break;
MaxScorda 2:9c22b1264236 87 case 6:
MaxScorda 2:9c22b1264236 88 mess="No!";
MaxScorda 2:9c22b1264236 89 break;
MaxScorda 2:9c22b1264236 90 case 7:
MaxScorda 2:9c22b1264236 91 mess="No!No!!";
MaxScorda 2:9c22b1264236 92 break;
MaxScorda 2:9c22b1264236 93 case 8:
MaxScorda 2:9c22b1264236 94 mess="Noooooo";
MaxScorda 2:9c22b1264236 95 break;
MaxScorda 2:9c22b1264236 96 case 9:
MaxScorda 2:9c22b1264236 97 mess="Lontano";
MaxScorda 2:9c22b1264236 98 break;
MaxScorda 2:9c22b1264236 99 case 10:
MaxScorda 2:9c22b1264236 100 mess="Aaargh";
MaxScorda 2:9c22b1264236 101 break;
MaxScorda 2:9c22b1264236 102 case 11:
MaxScorda 2:9c22b1264236 103 mess="Aaahhh";
MaxScorda 2:9c22b1264236 104 break;
MaxScorda 2:9c22b1264236 105 case 12:
MaxScorda 2:9c22b1264236 106 mess="Orrore!";
MaxScorda 2:9c22b1264236 107 break;
MaxScorda 2:9c22b1264236 108 case 13:
MaxScorda 2:9c22b1264236 109 mess="Vattene";
MaxScorda 2:9c22b1264236 110 break;
MaxScorda 2:9c22b1264236 111 case 14:
MaxScorda 2:9c22b1264236 112 mess="Oddioo";
MaxScorda 2:9c22b1264236 113 break;
MaxScorda 2:9c22b1264236 114 }
MaxScorda 2:9c22b1264236 115 //display
MaxScorda 2:9c22b1264236 116 segmentDisplay.Write(string2char(mess));
MaxScorda 2:9c22b1264236 117 //ricalcolo ticker
MaxScorda 2:9c22b1264236 118 rtime=((rand()%4000)+1000)/1000;
MaxScorda 2:9c22b1264236 119 refreshTicker.detach();
MaxScorda 2:9c22b1264236 120 refreshTicker.attach(&tickerCallback, rtime);
MaxScorda 2:9c22b1264236 121 myled0 = 1;
MaxScorda 2:9c22b1264236 122 segmentDisplay.Symbol(LCD_SYMBOL_GECKO, true);
MaxScorda 2:9c22b1264236 123 ledTicker0.detach();
MaxScorda 2:9c22b1264236 124 ledTicker0.attach(&ledTogglerGen, rtime/2);
MaxScorda 2:9c22b1264236 125 ledTicker1.attach(&ledToggler, 0.1f);
MaxScorda 2:9c22b1264236 126 }
MaxScorda 2:9c22b1264236 127
MaxScorda 2:9c22b1264236 128 /**
MaxScorda 2:9c22b1264236 129 * Callback for touching/untouching the cap slider
MaxScorda 2:9c22b1264236 130 */
MaxScorda 2:9c22b1264236 131
MaxScorda 2:9c22b1264236 132
MaxScorda 2:9c22b1264236 133 void touchCallback(void)
MaxScorda 2:9c22b1264236 134 {
MaxScorda 2:9c22b1264236 135 segmentDisplay.Symbol(LCD_SYMBOL_EFM32, capSlider.isTouched());
MaxScorda 2:9c22b1264236 136
MaxScorda 2:9c22b1264236 137 if(!capSlider.isTouched()) {
MaxScorda 2:9c22b1264236 138 segmentDisplay.Write("Bestia!");
MaxScorda 2:9c22b1264236 139 printf("Touch in use \n\r");
MaxScorda 2:9c22b1264236 140 }
MaxScorda 2:9c22b1264236 141 }
MaxScorda 2:9c22b1264236 142
MaxScorda 2:9c22b1264236 143 /**
MaxScorda 2:9c22b1264236 144 * Callback for sliding the cap slider
MaxScorda 2:9c22b1264236 145 */
MaxScorda 2:9c22b1264236 146 void slideCallback(void)
MaxScorda 2:9c22b1264236 147 {
MaxScorda 2:9c22b1264236 148 segmentDisplay.LowerNumber(capSlider.get_position());
MaxScorda 2:9c22b1264236 149 }
MaxScorda 2:9c22b1264236 150
MaxScorda 2:9c22b1264236 151 //************************ FUNZIONI MODIFICATE
MaxScorda 2:9c22b1264236 152 void in0_handler()
MaxScorda 2:9c22b1264236 153 {
MaxScorda 2:9c22b1264236 154 segmentDisplay.Write("No 0!");
MaxScorda 2:9c22b1264236 155 /*
MaxScorda 2:9c22b1264236 156 pc.printf("Button 0 \n\r");
MaxScorda 2:9c22b1264236 157 count++;
MaxScorda 2:9c22b1264236 158 if (count>7) count=7;
MaxScorda 2:9c22b1264236 159 else segmentDisplay.ARing(count, true);
MaxScorda 2:9c22b1264236 160 symbolGest() ;
MaxScorda 2:9c22b1264236 161 */
MaxScorda 2:9c22b1264236 162 }
MaxScorda 2:9c22b1264236 163
MaxScorda 2:9c22b1264236 164 void in1_handler()
MaxScorda 2:9c22b1264236 165 {
MaxScorda 2:9c22b1264236 166 segmentDisplay.Write("No 1!");
MaxScorda 2:9c22b1264236 167 /*
MaxScorda 2:9c22b1264236 168 printf("Button 1 \n\r");
MaxScorda 2:9c22b1264236 169 segmentDisplay.ARing(count, false);
MaxScorda 2:9c22b1264236 170 count--;
MaxScorda 2:9c22b1264236 171 if (count<0) count=-1;
MaxScorda 2:9c22b1264236 172 symbolGest() ;
MaxScorda 2:9c22b1264236 173 */
MaxScorda 2:9c22b1264236 174 }
MaxScorda 2:9c22b1264236 175
MaxScorda 2:9c22b1264236 176
MaxScorda 2:9c22b1264236 177
MaxScorda 2:9c22b1264236 178
MaxScorda 2:9c22b1264236 179