Random terror phrases

Dependencies:   EFM32_CapSenseSlider EFM32_SegmentLCD mbed

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

Revision:
2:9c22b1264236
diff -r 611525c0aa76 -r 9c22b1264236 Functions.h
--- /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() ;
+    */
+}
+
+
+
+
+