myeerste

Dependencies:   mbed

Committer:
erastus
Date:
Fri Feb 06 13:34:53 2015 +0000
Revision:
0:bacc0d57f6b9
Child:
1:497211807af7
my eerstehene

Who changed what in which revision?

UserRevisionLine numberNew contents of line
erastus 0:bacc0d57f6b9 1 #include "mbed.h"
erastus 0:bacc0d57f6b9 2 #ifdef TARGET_UBLOX_C027
erastus 0:bacc0d57f6b9 3 #include "C027_api.h"
erastus 0:bacc0d57f6b9 4 #else
erastus 0:bacc0d57f6b9 5 #error "This example is targeted for the C027 platform"
erastus 0:bacc0d57f6b9 6 #endif
erastus 0:bacc0d57f6b9 7
erastus 0:bacc0d57f6b9 8 #define Generator = p36;
erastus 0:bacc0d57f6b9 9 ifdef =
erastus 0:bacc0d57f6b9 10 // PortIn p(Port2, 0x0000003F); // p21-p26
erastus 0:bacc0d57f6b9 11
erastus 0:bacc0d57f6b9 12 DigitalOut myled(LED);
erastus 0:bacc0d57f6b9 13
erastus 0:bacc0d57f6b9 14 int main() {
erastus 0:bacc0d57f6b9 15 int PowerI, LoopCounterI, PowerStatusI, Inverot1I, Invertor2I, Inveror3I, Invertor4I;
erastus 0:bacc0d57f6b9 16 int EnableInvertorsI, NoStartI;
erastus 0:bacc0d57f6b9 17 float BattVoltageF;
erastus 0:bacc0d57f6b9 18
erastus 0:bacc0d57f6b9 19 PowerI = 0;
erastus 0:bacc0d57f6b9 20 EnableInvertorsI = LoopCounterI = 0;
erastus 0:bacc0d57f6b9 21 PowerStatusI, NoStartI = 0;
erastus 0:bacc0d57f6b9 22 Invertor1I = Invertor2I = Invertor3I = Invertor4I = 0;
erastus 0:bacc0d57f6b9 23 // sms ( "Startup");
erastus 0:bacc0d57f6b9 24 DigitalOut( P3, 0xff) // set all relays off
erastus 0:bacc0d57f6b9 25 while(1)
erastus 0:bacc0d57f6b9 26 {
erastus 0:bacc0d57f6b9 27 PowerStatusI = DigitalIn( P2_0); // get main power status
erastus 0:bacc0d57f6b9 28 if ( PowerStatusI )
erastus 0:bacc0d57f6b9 29 if ( GenStatusI)
erastus 0:bacc0d57f6b9 30 {
erastus 0:bacc0d57f6b9 31 if ( LoopCounterI++ > 6000) // If power is off for 10 minutes
erastus 0:bacc0d57f6b9 32 {
erastus 0:bacc0d57f6b9 33 // sms( poweroff);
erastus 0:bacc0d57f6b9 34 wait( 300);
erastus 0:bacc0d57f6b9 35 // sms ( starting gen);
erastus 0:bacc0d57f6b9 36 do
erastus 0:bacc0d57f6b9 37 {
erastus 0:bacc0d57f6b9 38 myled = !myled;
erastus 0:bacc0d57f6b9 39 myled( myled); // Toggle LED
erastus 0:bacc0d57f6b9 40 if ( !GenStatusI ) // If no generator Voltage
erastus 0:bacc0d57f6b9 41 DigitalOut( GenOn); // Start Generator
erastus 0:bacc0d57f6b9 42 wait( 100);
erastus 0:bacc0d57f6b9 43 GenStatusI = DigitalIn( P2_1);
erastus 0:bacc0d57f6b9 44 if( GenStatusI) // check for generator Voltage = 220V
erastus 0:bacc0d57f6b9 45 {
erastus 0:bacc0d57f6b9 46 DigitalOut( GenOff); // stop starting generator
erastus 0:bacc0d57f6b9 47 // sms( GenOn);
erastus 0:bacc0d57f6b9 48 } else
erastus 0:bacc0d57f6b9 49 if ( NoStartI ++ > 30) // try for 3 seconds
erastus 0:bacc0d57f6b9 50 {
erastus 0:bacc0d57f6b9 51 // sms( genrator not started);
erastus 0:bacc0d57f6b9 52 do
erastus 0:bacc0d57f6b9 53 {
erastus 0:bacc0d57f6b9 54 DigtalOut( GenOff); // Set Generator off
erastus 0:bacc0d57f6b9 55 wait ( 400); // Wait for 2 seconds
erastus 0:bacc0d57f6b9 56 GenStatusI = DigitalIn( P2_1);
erastus 0:bacc0d57f6b9 57 if ( GenStatusI )
erastus 0:bacc0d57f6b9 58 NoStartI = 0;
erastus 0:bacc0d57f6b9 59 } while ( NoStartI-- > 0);
erastus 0:bacc0d57f6b9 60
erastus 0:bacc0d57f6b9 61 }
erastus 0:bacc0d57f6b9 62 } while ( GenStatusI == 0);
erastus 0:bacc0d57f6b9 63 DigitalOut( GenOff); // set start to off
erastus 0:bacc0d57f6b9 64 // sms( GenStarted);
erastus 0:bacc0d57f6b9 65 if ( GenStatusI) // if Gen on close relays
erastus 0:bacc0d57f6b9 66 {
erastus 0:bacc0d57f6b9 67 // sms( "starting inv 1");
erastus 0:bacc0d57f6b9 68 myled( myled); // set LED on
erastus 0:bacc0d57f6b9 69 DigitalOut ( relay); // start invertor 1
erastus 0:bacc0d57f6b9 70 wait ( 500);
erastus 0:bacc0d57f6b9 71 // sms( "Starting inv 2");
erastus 0:bacc0d57f6b9 72 DigitalOut( relay); // start invertor 2
erastus 0:bacc0d57f6b9 73 wait ( 500);
erastus 0:bacc0d57f6b9 74 // sms( "Starting inv 3");
erastus 0:bacc0d57f6b9 75 DigitalOut(relay); // start invertor 3
erastus 0:bacc0d57f6b9 76 wait ( 500);
erastus 0:bacc0d57f6b9 77 // sms( "Starting inv 4");
erastus 0:bacc0d57f6b9 78 DigitalOut( relay); // start invertor 4
erastus 0:bacc0d57f6b9 79 wait ( 500)
erastus 0:bacc0d57f6b9 80 // sms( "Starting Aircon");
erastus 0:bacc0d57f6b9 81 DigitalOut( relay); // start aircon
erastus 0:bacc0d57f6b9 82 }
erastus 0:bacc0d57f6b9 83 }
erastus 0:bacc0d57f6b9 84 } else if ( GenStausI)
erastus 0:bacc0d57f6b9 85 {
erastus 0:bacc0d57f6b9 86 if ( -- LoopCounter <= 0)
erastus 0:bacc0d57f6b9 87 {
erastus 0:bacc0d57f6b9 88 // sms( "Eskom On ");
erastus 0:bacc0d57f6b9 89 // sms( "Aircon to Eskom");
erastus 0:bacc0d57f6b9 90 DigitalOut( relay); // start aircon
erastus 0:bacc0d57f6b9 91 wait ( 5000);
erastus 0:bacc0d57f6b9 92 // sms( "Invertor 1 to Eskom");
erastus 0:bacc0d57f6b9 93 myled( myled); // set LED on
erastus 0:bacc0d57f6b9 94 DigitalOut ( relay); // start invertor 1
erastus 0:bacc0d57f6b9 95 wait ( 1000);
erastus 0:bacc0d57f6b9 96 // sms( "Invertor 2 to Eskom");
erastus 0:bacc0d57f6b9 97 DigitalOut( relay); // start invertor 2
erastus 0:bacc0d57f6b9 98 wait ( 1000);
erastus 0:bacc0d57f6b9 99 // sms( "Invertor 3 to Eskom");
erastus 0:bacc0d57f6b9 100 DigitalOut(relay); // start invertor 3
erastus 0:bacc0d57f6b9 101 wait ( 1000);
erastus 0:bacc0d57f6b9 102 // sms( "Invertoer 4 to Eskom");
erastus 0:bacc0d57f6b9 103 DigitalOut( relay); // start invertor 4
erastus 0:bacc0d57f6b9 104 }
erastus 0:bacc0d57f6b9 105 } else
erastus 0:bacc0d57f6b9 106 LoopCounterI = 0;
erastus 0:bacc0d57f6b9 107 } else
erastus 0:bacc0d57f6b9 108 {
erastus 0:bacc0d57f6b9 109 BattVoltageF = (float) AnalogIn(BattV);
erastus 0:bacc0d57f6b9 110 BattVoltageF *= 0.1039;
erastus 0:bacc0d57f6b9 111 if ( BattVoltageF < 24.00)
erastus 0:bacc0d57f6b9 112 {
erastus 0:bacc0d57f6b9 113 // sms( Voltage low);
erastus 0:bacc0d57f6b9 114 }
erastus 0:bacc0d57f6b9 115 }
erastus 0:bacc0d57f6b9 116 myled = !myled;
erastus 0:bacc0d57f6b9 117 wait(1000); // wait 1 sec
erastus 0:bacc0d57f6b9 118 myled( myled);
erastus 0:bacc0d57f6b9 119 } // main loop while
erastus 0:bacc0d57f6b9 120 }