
Random terror phrases
Dependencies: EFM32_CapSenseSlider EFM32_SegmentLCD mbed
Fork of EMF32-Segment-Touch-Demo by
Functions.h@2:9c22b1264236, 2015-09-29 (annotated)
- Committer:
- MaxScorda
- Date:
- Tue Sep 29 14:04:48 2015 +0000
- Revision:
- 2:9c22b1264236
1.0
Who changed what in which revision?
User | Revision | Line number | New 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 |