Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define SEC 250 //makrodefinicja sekundy
- char mode_1 = 1, mode_2 = 1, mode_3 = 1, mode_4 = 1; //tryby dla zbiorników: 1-górny_lewy, 2-górny_prawy, 3-dolny
- int tim1, tim2, tim3, tim4, i=0; //timery dla zbiorników: tim1 -glewy; tim2 -gprawy; tim3-dolny
- int TimTable[] = { SEC * 4,SEC * 2,SEC * 9,SEC * 10,SEC * 3 }; //aktualny
- int TimAuto[] = { SEC * 4,SEC * 2,SEC * 9,SEC * 10,SEC * 3 }; //automatyczny
- int TimManual[] = { SEC * 4,SEC * 2,SEC * 9,SEC * 10,SEC * 3 }; //manualny
- int BottomLimiter[] = { SEC * 2,SEC * 1,SEC * 3,SEC * 2,SEC * 2}; //ograniczenie dolne
- int TopLimiter[] = { SEC * 8,SEC * 4,SEC * 9,SEC * 10,SEC * 4 }; //ograniczenie górne
- char buf2[40]; //bufor przechowujący informacje o rodzajach czasu
- char mode = 0; //zmienna pomocnicza do przekazania trybu do LCD
- char zmienna; //zmienna pomocnicza do zapisu aktualnego trybu
- void Change(void); //prototyp funkcji Change();
- void Zbiornik(void); //prototyp funkcji Zbiornik();
- void Zbiornik(void) //funkcja Zbiornik();
- {
- switch (mode_1) //działanie lewego górnego zbiornika
- {
- case 1:
- Z1 = 1;
- if (X2)
- {
- mode_1 = 2;
- tim1 = TimTable[0];
- }
- break;
- case 2:
- Z1 = 1;
- if (!X2) mode_1 = 1;
- else if (X1) mode_1 = 4;
- else if (!tim1)
- {
- mode_1 = 3;
- tim1 = TimTable[1];
- }
- break;
- case 3:
- Z1 = 0;
- if (!tim1)
- {
- mode_1 = 2;
- tim1 = TimTable[0];
- }
- break;
- case 4:
- Z1 = 0;
- if (!X2) mode_1 = 1;
- break;
- }
- switch (mode_2) //działanie prawego górnego zbiornika
- {
- case 1:
- Z2 = 1;
- if (X4)
- {
- mode_2 = 2;
- tim2 = TimTable[2];
- }
- case 2:
- Z2 = 1;
- if (!tim2) mode_2 = 4;
- else if (X3) mode_2 = 3;
- else if (!X4) mode_2 = 1;
- break;
- case 3:
- Z2 = 0;
- if (!X4) mode_2 = 1;
- break;
- case 4:
- Z2 = 1;
- if (X3) mode_2 = 3;
- break;
- }
- switch (mode_3) //działanie dolnego zbiornika
- {
- case 1:
- Z3 = 1; Z4 = 1; Z5 = 0; M = 1; G = 0;
- if (X7)
- {
- mode_3 = 2;
- tim3 = TimTable[4];
- }
- break;
- case 2:
- Z3 = 1; Z4 = 0; Z5 = 0; M = 0; G = 0;
- if (X6)
- {
- mode_3 = 4;
- tim3 = TimTable[4];
- }
- else if (!tim3)
- {
- mode_3 = 3;
- tim3 = TimTable[4];
- }
- break;
- case 3:
- Z3 = 0; Z4 = 1; Z5 = 0; M = 0; G = 0;
- if (X6)
- {
- mode_3 = 4;
- tim3 = TimTable[4];
- }
- else if (!tim3)
- {
- mode_3 = 2;
- tim3 = TimTable[4];
- }
- break;
- case 4:
- Z3 = 1; Z4 = 0; Z5 = 0; M = 0; G = 0;
- if (!tim3)
- {
- mode_3 = 5;
- tim3 = TimTable[4];
- }
- else if (X5)
- {
- mode_3 = 7;
- tim3 = TimTable[3];
- }
- break;
- case 5:
- Z3 = 0; Z4 = 0; Z5 = 0; M = 1; G = 0;
- if (!tim3)
- {
- mode_3 = 6;
- tim3 = TimTable[4];
- }
- break;
- case 6:
- Z3 = 0; Z4 = 1; Z5 = 0; M = 0; G = 0;
- if (X5)
- {
- mode_3 = 7;
- tim3 = TimTable[3];
- }
- else if (!tim3)
- {
- mode_3 = 4;
- tim3 = TimTable[4];
- }
- break;
- case 7:
- Z3 = 0; Z4 = 0; Z5 = 0; M = 1; G = 1;
- if (T || !tim3) mode_3 = 8;
- break;
- case 8:
- Z3 = 0; Z4 = 0; Z5 = 1; M = 0; G = 0;
- if (!X7) mode_3 = 1;
- break;
- }
- }
- void Change(void) //funkcja obsługująca zamianę wartości czasów w odnieśnieniu do obecnego trybu
- {
- int j = 0;
- if (mode == 0)
- { //tryb automatyczny
- for (j = 0; j < 5; j++) TimTable[j] = TimAuto[j];
- }
- else
- { //tryb manualny
- for (j = 0; j < 5; j++) TimTable[j] = TimManual[j];
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement