myeerste
main.cpp
- Committer:
- erastus
- Date:
- 2015-02-07
- Revision:
- 4:6dbe7ec75eca
- Parent:
- 3:2e7c3a890019
- Child:
- 5:2384dc3e74fa
File content as of revision 4:6dbe7ec75eca:
#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);
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
}