Programmeringsgruppe 1
/
Alarmsystem20_02_2018
klokka 15:07
Fork of AlarmsystemDel1 by
main.cpp
- Committer:
- Banyrud
- Date:
- 2018-02-01
- Revision:
- 7:25e0260ee887
- Parent:
- 5:045ef3068f21
- Child:
- 8:bdb8bd12d4f4
File content as of revision 7:25e0260ee887:
#include "mbed.h" #define Feil 0<1 #define Tilstand1 2.5<2.7 #define Tilstand2 2.1<2.3 #define Tilstand3 3.3 #define Normaldrift 1.8<2.0 DigitalOut myled2(LED2); Serial pc(USBTX, USBRX); DigitalOut Driftslys(LED1); BusOut AlarmUtganger1(p21, p22, p23, p24); BusOut AlarmUtganger2(p25, p26, p27, p28); DigitalIn Servicebryter(p20); AnalogIn _Sone1(p15); float Sone1; AnalogIn _Sone2(p16); float Sone2; AnalogIn _Sone3(p17); float Sone3; AnalogIn _Sone4(p19); float Sone4; Ticker AlarmBlink; //10Hz blinking for alarmfunksjon på lys og telling int Tid = 0; volatile int sysclock = 0; int Utganger1 = AlarmUtganger1; int Utganger2 = AlarmUtganger2; int Bryter = Servicebryter; int Door1_1 = 0, Door1_2 = 0, Door2_1 = 0, Door2_2 = 0, Door3_1 = 0, Door3_2 = 0, Door4_1 = 0, Door4_2 = 0; void fill_arrSone (float Sone1,float Sone2,float Sone3,float Sone4); float filled_arr[10]; int DoorOne[4] = { Door1_1, Door2_1, Door3_1, Door4_1 }; int DoorTwo[4] = { Door1_2, Door2_2, Door3_2, Door4_2 }; enum {_Feil, _Tilstand1, _Tilstand2, _Tilstand3, _NormalDrift} Tilstand; // Tilstand1 = Bryter1 i Sonen valgt, Tilstand2 = Bryter2 i sonen valgt, Tilstand3 = bryter 1 og 2 i sonen valgt, Normaldrift = alt er optimalt. int Tilstandssjekk(); void AlarmBlink_Start(void); volatile int Klokke = 0; int main() { AlarmBlink.attach(&AlarmBlink_Start, 0.05); while(1) { if(Servicebryter == 1) { Utganger1 = 0; Utganger2 = 0; } Tilstandssjekk(); float volt = Sone1*3.3; pc.printf("%f\n", volt); wait(1.0); //while(sysclock == 1); //while(sysclock == 0); Tid++; } } int Tilstandssjekk() { int i = 0; for(i = 0; i < 3; i++) { if(filled_arr[i] == Tilstand1) { pc.printf("I tilstand 1\n"); AlarmBlink_Start(); DoorOne[i] = AlarmUtganger1; } if(Tilstand2 == filled_arr[i]) { pc.printf("I tilstand 2\n"); AlarmBlink_Start(); DoorTwo[i] = AlarmUtganger2; } if(Tilstand3 == filled_arr[i]) { pc.printf("I tilstand 3\n"); AlarmBlink_Start(); DoorOne[i] = AlarmUtganger1; DoorTwo[i] = AlarmUtganger2; } if(Feil == filled_arr[i]) { AlarmBlink_Start(); pc.printf("I tilstand feil\n"); } if(Normaldrift == filled_arr[i]) { Driftslys = 1; DoorOne[i] = AlarmUtganger1 - DoorOne[i]; pc.printf("I tilstand normaldrift\n"); } if(i < 0 ) { DoorOne[i] = AlarmUtganger1 + DoorOne[i]; DoorTwo[i] = AlarmUtganger2 - DoorTwo[i]; } if(i < 0 ) { DoorOne[i] = AlarmUtganger2 + DoorTwo[i]; } } return 0; } void AlarmBlink_Start(void) { sysclock = !sysclock; Driftslys = 1; if(Normaldrift == 1) { Driftslys = 1; Utganger1 = 0; Utganger2 = 0; } } void fill_arrSone =(float Sone1, float Sone2, float Sone3, float Sone4){ filled_arr[1] = Sone1; filled_arr[2] = Sone2; filled_arr[3] = Sone3; filled_arr[4] = Sone4; }