myeerste

Dependencies:   mbed

Revision:
0:bacc0d57f6b9
Child:
1:497211807af7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Feb 06 13:34:53 2015 +0000
@@ -0,0 +1,120 @@
+#include "mbed.h"
+#ifdef TARGET_UBLOX_C027
+ #include "C027_api.h"
+#else
+ #error "This example is targeted for the C027 platform"
+#endif
+
+#define Generator = p36;
+ifdef = 
+// PortIn     p(Port2, 0x0000003F);   // p21-p26
+
+DigitalOut myled(LED); 
+
+int main() {
+    int PowerI, LoopCounterI, PowerStatusI, Inverot1I, Invertor2I, Inveror3I, Invertor4I;
+    int EnableInvertorsI, NoStartI;
+    float   BattVoltageF;
+    
+    PowerI = 0;
+    EnableInvertorsI = LoopCounterI = 0;
+    PowerStatusI, NoStartI = 0;
+    Invertor1I = Invertor2I = Invertor3I = Invertor4I = 0;
+    //  sms ( "Startup");
+    DigitalOut( P3, 0xff)                           // set all relays off
+    while(1) 
+        {
+        PowerStatusI = DigitalIn( P2_0);            // get main power status
+        if ( PowerStatusI )
+            if ( GenStatusI)
+            {
+            if ( LoopCounterI++ > 6000)             // If power is off for 10 minutes
+                {
+                //  sms( poweroff);
+                wait( 300);
+                // sms ( starting gen);
+                do
+                    {
+                    myled = !myled;
+                    myled( myled);                   // Toggle LED
+                    if ( !GenStatusI )               // If no generator Voltage
+                        DigitalOut( GenOn);          //  Start Generator
+                    wait( 100);
+                    GenStatusI = DigitalIn( P2_1);
+                    if( GenStatusI)                  //  check for generator Voltage = 220V
+                        {
+                        DigitalOut( GenOff);         // stop starting generator
+                        // sms( GenOn);
+                        }  else
+                        if ( NoStartI ++ > 30)       //  try for 3 seconds
+                            {
+                            // sms( genrator not started);
+                            do
+                                {
+                                DigtalOut( GenOff);    // Set Generator off
+                                wait ( 400);           // Wait for 2 seconds
+                                GenStatusI = DigitalIn( P2_1);
+                                if ( GenStatusI )
+                                    NoStartI = 0;
+                                } while ( NoStartI-- > 0);
+                            
+                            }
+                    } while ( GenStatusI == 0);
+                DigitalOut( GenOff);            // set start to off
+                //     sms( GenStarted);
+                if ( GenStatusI)                // if Gen on close relays
+                    {
+                    //   sms( "starting inv 1");
+                    myled( myled);              //  set LED on
+                    DigitalOut ( relay);        //  start invertor 1
+                    wait ( 500);
+                    //   sms( "Starting inv 2");
+                    DigitalOut( relay);         //  start invertor 2
+                    wait ( 500);
+                    //   sms( "Starting inv 3");
+                    DigitalOut(relay);          //  start invertor 3
+                    wait ( 500);
+                    //   sms( "Starting inv 4");
+                    DigitalOut( relay);         //  start invertor 4
+                    wait ( 500)
+                    //   sms( "Starting Aircon");
+                    DigitalOut( relay);         //  start aircon
+                    }
+                }
+            } else if ( GenStausI)
+                {
+                if ( -- LoopCounter <= 0)
+                    {
+                    //   sms( "Eskom On ");
+                    //   sms( "Aircon to Eskom");
+                    DigitalOut( relay);         //  start aircon
+                    wait ( 5000);
+                    //   sms( "Invertor 1 to Eskom");
+                    myled( myled);              //  set LED on
+                    DigitalOut ( relay);        //  start invertor 1
+                    wait ( 1000);
+                    //   sms( "Invertor 2 to Eskom");
+                    DigitalOut( relay);         //  start invertor 2
+                    wait ( 1000);
+                    //   sms( "Invertor 3 to Eskom");
+                    DigitalOut(relay);          //  start invertor 3
+                    wait ( 1000);
+                    //   sms( "Invertoer 4 to Eskom");
+                    DigitalOut( relay);         //  start invertor 4                        
+                    }
+                } else
+                    LoopCounterI = 0;
+            } else
+                {
+                BattVoltageF = (float) AnalogIn(BattV);
+                BattVoltageF *= 0.1039;
+                if ( BattVoltageF < 24.00)
+                    {
+                    // sms( Voltage low);
+                    }
+                }
+        myled = !myled;
+        wait(1000);  // wait 1 sec
+        myled( myled);
+    }   // main loop while    
+}