myeerste

Dependencies:   mbed

main.cpp

Committer:
erastus
Date:
2015-02-06
Revision:
0:bacc0d57f6b9
Child:
1:497211807af7

File content as of revision 0:bacc0d57f6b9:

#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    
}