Erastus Coetzee
/
C027_HelloWorld
myeerste
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 }