
Random terror phrases
Dependencies: EFM32_CapSenseSlider EFM32_SegmentLCD mbed
Fork of EMF32-Segment-Touch-Demo by
Diff: Functions.h
- Revision:
- 2:9c22b1264236
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Functions.h Tue Sep 29 14:04:48 2015 +0000 @@ -0,0 +1,179 @@ +#include <string> + + +char* string2char(string sttde) +{ + //ora aggiunge comunque l'EOS. Decidere se parametrizzare + //sttde=addEOS(sttde); + char *cstr = new char[sttde.length() + 1]; + strcpy(cstr, sttde.c_str()); + // delete [] cstr; + return cstr; +} + +//****************** FUNZIONI STANDARD NON MODIFICATE +/** + * Callback for pushbutton interrupt + */ + +void symbolGest() +{ + if (count==7) { + segmentDisplay.Symbol(LCD_SYMBOL_GECKO, true); + segmentDisplay.Write("GeckoOn"); + pc.printf("Gecko! \n\r"); + } else { + segmentDisplay.Symbol(LCD_SYMBOL_GECKO, false); + if (count%2==0) segmentDisplay.Write("Scorda"); + else segmentDisplay.Write("TataGek"); + } +} + + +void ledToggler(void) +{ + myled1 = !myled1; +} + +void ledTogglerGen(void) +{ + myled0 = !myled0; + segmentDisplay.Symbol(LCD_SYMBOL_GECKO, false); + myled1=1; + ledTicker1.detach(); +} + + +void timeDisp() +{ + seconds++; + uint32_t clockValue = ((seconds / 60) % 60) * 100 + (seconds % 60); + segmentDisplay.Number(clockValue); + segmentDisplay.Symbol(LCD_SYMBOL_COL10, seconds & 0x1); + +} + +/** + * Callback for display + */ +void tickerCallback(void) +{ + float rtime; + int choicev; + string mess; + + //choice + choicev=rand()%15; + + switch (choicev) { + case 0: + mess="Vai Via"; + break; + case 1: + mess="Via!!"; + break; + case 2: + mess="Vattene"; + break; + case 3: + mess="Aiuto!"; + break; + case 4: + mess="Basta!"; + break; + case 5: + mess="Paura!"; + break; + case 6: + mess="No!"; + break; + case 7: + mess="No!No!!"; + break; + case 8: + mess="Noooooo"; + break; + case 9: + mess="Lontano"; + break; + case 10: + mess="Aaargh"; + break; + case 11: + mess="Aaahhh"; + break; + case 12: + mess="Orrore!"; + break; + case 13: + mess="Vattene"; + break; + case 14: + mess="Oddioo"; + break; + } +//display + segmentDisplay.Write(string2char(mess)); + //ricalcolo ticker + rtime=((rand()%4000)+1000)/1000; + refreshTicker.detach(); + refreshTicker.attach(&tickerCallback, rtime); + myled0 = 1; + segmentDisplay.Symbol(LCD_SYMBOL_GECKO, true); + ledTicker0.detach(); + ledTicker0.attach(&ledTogglerGen, rtime/2); + ledTicker1.attach(&ledToggler, 0.1f); +} + +/** + * Callback for touching/untouching the cap slider + */ + + +void touchCallback(void) +{ + segmentDisplay.Symbol(LCD_SYMBOL_EFM32, capSlider.isTouched()); + + if(!capSlider.isTouched()) { + segmentDisplay.Write("Bestia!"); + printf("Touch in use \n\r"); + } +} + +/** + * Callback for sliding the cap slider + */ +void slideCallback(void) +{ + segmentDisplay.LowerNumber(capSlider.get_position()); +} + +//************************ FUNZIONI MODIFICATE +void in0_handler() +{ + segmentDisplay.Write("No 0!"); + /* + pc.printf("Button 0 \n\r"); + count++; + if (count>7) count=7; + else segmentDisplay.ARing(count, true); + symbolGest() ; + */ +} + +void in1_handler() +{ + segmentDisplay.Write("No 1!"); + /* + printf("Button 1 \n\r"); + segmentDisplay.ARing(count, false); + count--; + if (count<0) count=-1; + symbolGest() ; + */ +} + + + + +