myeerste

Dependencies:   mbed

Committer:
erastus
Date:
Sat Feb 07 13:19:43 2015 +0000
Revision:
3:2e7c3a890019
Parent:
2:36d2742dc2bf
Child:
4:6dbe7ec75eca
1

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