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() ;
+ */
+}
+
+
+
+
+
