Testprogramm fuer den SMD IoTKit Shield.

Dependencies:   MFRC522 RemoteIR Servo StepperMotorUni mbed-rtos mbed ESP8266 RCSwitch SAA1064 TMP175

Revision:
3:880adec02196
Parent:
2:e263949513ca
Child:
4:0710c12a0067
--- a/main.cpp	Mon Mar 23 12:43:38 2015 +0000
+++ b/main.cpp	Wed Mar 25 13:20:47 2015 +0000
@@ -11,7 +11,6 @@
 #include "ESP8266.h"
 #include "RCSwitch.h"
 #include "TMP175.h"
-#include "SAA1064.h"
 // Trace
 #include "trace.h"
 
@@ -176,7 +175,7 @@
 {
     INFO( "MOSFET Thread" ); 
     
-    DigitalOut mosfet( D13 );
+    DigitalOut mosfet( D7 );
             
     mosfet = 1;
     Thread::wait( 1000 );
@@ -187,7 +186,7 @@
 void doESP8266()
 {
     INFO("ESP8266 Test");
-    ESP8266 esp( PTC15, PTC14 ); // tx, rx (Bluetooth Header)
+    ESP8266 esp( A3, A2, 9600 ); // tx, rx (Bluetooth Header)
     char snd[255], rcv[1000]; // Strings for sending and receiving commands / data / replies
     wait(1);
 
@@ -212,8 +211,8 @@
     esp.GetList(rcv);
     printf("%s", rcv);
 
-    printf("Connecting to AP\n");
-    esp.Join("mcbmobile_1EX", "android%123" ); // Replace MyAP and MyPasswd with your SSID and password
+    /*printf("Connecting to AP\n");
+    esp.Join("MyAP", "MyPasswd" ); // Replace MyAP and MyPasswd with your SSID and password
     esp.RcvReply(rcv, 1000);
     printf("%s", rcv);
     wait(8);
@@ -223,7 +222,7 @@
     printf("Setting multiple connections\r\n");
     esp.SetMultiple();
     esp.RcvReply(rcv, 1000);
-    printf("%s", rcv);
+    printf("%s", rcv);*/
 
     printf("THE END\n");
 }
@@ -233,7 +232,7 @@
 {
     INFO("RFID Reader MFRC522 Test");
     // NFC/RFID Reader an WiFi Header von K64F
-    MFRC522 rfidReader( PTD6, PTD7, PTD5, PTD4, PTC12 );
+    MFRC522    rfidReader( D11, D12, D13, D10, D8 );
     rfidReader.PCD_Init(); 
 
     // RFID Reader
@@ -462,8 +461,8 @@
     DigitalIn button4( A1, PullUp );
     DigitalIn button5( A2, PullUp );
     
-    while   ( 1 )
-    {
+    //while   ( 1 )
+    //{
         if  ( button1 == 0 )
         {
             printf( "button 1 pressed\n" );
@@ -490,7 +489,7 @@
             return;
         } 
         wait    ( 0.2 );               
-    }
+    //}
 }
 
 /** I2C Temperatorsensor */
@@ -511,19 +510,45 @@
     }
 }
 
-/** LCD Test */
-void doLCD()
+/** LED Digit Test */
+void do4DigitLED()
 {
-    INFO( "LCD Test" );
+    INFO( "LED Digit Test" );
+    unsigned char saa1064 = 0x70; // define the I2C bus address for our SAA1064
+    //nums array 0,1,2,3,4,5,6,7,8,9,A,b,c,D,E,F,' ' //last element == blank
+    // add 8 for dot
+    unsigned char nums[17]={ 0xE7, 0x84, 0xD3, 0xD6, 0xB4, 0x76, 0x77, 0xC4, 0xF7, 0xF6, 0xF5, 0x37, 0x13, 0x97, 0x73, 0x71};
+    unsigned char  digit[4]={0,0,0,0};
+    uint8_t data[6];    
+    
     I2C i2c( D14, D15); // SDA, SCL
-    SAA1064 LED( &i2c ); // I2C bus, Default SAA1064 Slaveaddress
+        // Initialisierung
+    data[0] = 0x00;
+    data[1] = 0x47;
+    i2c.write( saa1064, (char*) data, 2 );
 
-    // Display 0, 1, 2, 3
-    LED.write(SAA1064_SEGM[0], SAA1064_SEGM[1], SAA1064_SEGM[2], SAA1064_SEGM[3]);
-    wait(1);
+    // alles auf OFF setzen
+    data[0] = 1;
+    data[1] = 0;
+    data[2] = 0;
+    data[3] = 0;
+    data[4] = 0;
+    i2c.write(saa1064, (char*) data, 5);
 
-    for  ( int count = 0; count < 150; count++ )
-        LED.writeInt(-150 + count, 3, false);  // Display value, dont suppress leading zero's
+    for ( int i = 0; i <= 16-4; i++ ) 
+    {
+        digit[0]=nums[i];
+        digit[1]=nums[i+1];
+        digit[2]=nums[i+2];
+        digit[3]=nums[i+3];
+        data[0] = 1;
+        data[1] = ((digit[3]<<4) & 0xF0) | (digit[1] & 0x0F);
+        data[2] = ((digit[2]<<4) & 0xF0) | (digit[0] & 0x0F);
+        data[3] = ((digit[1]>>4) & 0x0F) | (digit[3] & 0xF0);
+        data[4] = ((digit[0]>>4) & 0x0F) | (digit[2] & 0xF0);
+        i2c.write(saa1064, (char*) data, 5);
+        wait( 0.2 );
+    }
 }
 
 /** I2C Kommunikation mit Arduino */
@@ -566,12 +591,11 @@
 {
     INFO( "Buzzer Test" );
     PwmOut buzzer( D7 );
+    buzzer.period_us( 250 );
     
-    for ( float i = 0.0f; i < 1.0f; i += 0.1f )
-    {
-        buzzer = i;
-        wait( 0.2 );
-    }
+    buzzer = 0.5;
+    wait( 1.0 );
+    buzzer = 0.0;
 }
 
 /*------------------------------------------------------------------------
@@ -592,13 +616,13 @@
                 doPrintAnalogeValues(); // Analoge Sensoren
                 break;
             case 1:
-                doLedTicker();          // Lauflicht
+                //doLedTicker();          // Lauflicht
                 break;
             case 2:
                 doServoThread();        // Kamara Plattform mit Servos
                 break;
             case 3:
-                doMotorThread();        // 2 Motoren
+                //doMotorThread();        // 2 Motoren
                 break;
             case 4:
                 doStepperThread();      // Schrittmotor
@@ -625,7 +649,7 @@
                 doBuzzer();             // Buzzer (Summer)
                 break;  
             case 12:
-                doLCD();                // LCD im I2C Bus
+                do4DigitLED();          // LCD im I2C Bus
                 break;                                              
             case 13:
                 doI2CArduino();         // Arduino am I2C Bus
@@ -642,6 +666,11 @@
             default:
                 break;
         }
+        test++;
+        if  ( test > 16 )
+            test = 0;
+            
+        doLedTicker();          // Lauflicht
         wait( 1.0 );
     }        
 }
\ No newline at end of file