myeerste

Dependencies:   mbed

Committer:
erastus
Date:
Sat Feb 07 13:44:53 2015 +0000
Revision:
5:2384dc3e74fa
Parent:
4:6dbe7ec75eca
junk

Who changed what in which revision?

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