
myeerste
main.cpp
- Committer:
- erastus
- Date:
- 2015-02-07
- Revision:
- 5:2384dc3e74fa
- Parent:
- 4:6dbe7ec75eca
File content as of revision 5:2384dc3e74fa:
#include "mbed.h" //#ifdef TARGET_UBLOX_C027 #include "C027_api.h" //#else //#error "This example is targeted for the C027 platform" //#endif #include "gpio_api.h" Serial pc(USBTX, USBRX); // tx, rx DigitalOut myled (LED); #define Generator = p36; //ifdef = // PortIn p(Port2, 0x0000003F); // p21-p26 void digitalout( int Status) { } float AnalogIn ( int BattV) { float V; return (V); } int main() { int PowerI, LoopCounterI, PowerStatusI, Invertor1I, Invertor2I, Invertor3I, Invertor4I; int EnableInvertorsI, NoStartI, GenStatusI, LedI, GenOn, GenOff; float BattVoltageF; PowerI = 0; EnableInvertorsI = LoopCounterI = 0; GenStatusI = PowerStatusI = NoStartI = 0; Invertor1I = Invertor2I = Invertor3I = Invertor4I = 0; uint32_t gpio_set(PinName pin); for(;;) pc.printf("Hello World!\n"); // sms ( "Startup"); // DigitalOut( LED); // 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 { LedI = !LedI; // myled( LedI ); // Toggle LED if ( !GenStatusI ) // If no generator Voltage digitalout( 0); // 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 { digitalout( 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 ( 1 ); // start invertor 1 wait ( 500); // sms( "Starting inv 2"); digitalout( 2); // start invertor 2 wait ( 500); // sms( "Starting inv 3"); digitalout( 3 ); // start invertor 3 wait ( 500); // sms( "Starting inv 4"); digitalout( 4 ); // start invertor 4 wait ( 500); // sms( "Starting Aircon"); digitalout( 5 ); // start aircon } } } else if ( GenStatusI) { if ( -- LoopCounterI <= 0) { // sms( "Eskom On "); // sms( "Aircon to Eskom"); digitalout( 0 ); // start aircon wait ( 5000); // sms( "Invertor 1 to Eskom"); // myled( myled); // set LED on digitalout ( 1 ); // start invertor 1 wait ( 1000); // sms( "Invertor 2 to Eskom"); digitalout( 2 ); // start invertor 2 wait ( 1000); // sms( "Invertor 3 to Eskom"); digitalout( 3 ); // start invertor 3 wait ( 1000); // sms( "Invertoer 4 to Eskom"); digitalout( 4 ); // start invertor 4 } else LoopCounterI = 0; } else { // BattVoltageF = AnalogIn( 1); // Batt V BattVoltageF *= 0.1039; if ( BattVoltageF < 24.00) { // sms( Voltage low); } } // myled = !myled; wait(1000); // wait 1 sec // myled( LedI); } // main loop while }