Advertisement
pabloducato

Zadania.h

Jun 1st, 2019
375
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.32 KB | None | 0 0
  1. #define SEC 250 //makrodefinicja sekundy
  2. 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
  3. int tim1, tim2, tim3, tim4, i=0; //timery dla zbiorników: tim1 -glewy; tim2 -gprawy; tim3-dolny
  4. int TimTable[] = { SEC * 4,SEC * 2,SEC * 9,SEC * 10,SEC * 3 }; //aktualny
  5. int TimAuto[] = { SEC * 4,SEC * 2,SEC * 9,SEC * 10,SEC * 3 }; //automatyczny
  6. int TimManual[] = { SEC * 4,SEC * 2,SEC * 9,SEC * 10,SEC * 3 }; //manualny
  7. int BottomLimiter[] = { SEC * 2,SEC * 1,SEC * 3,SEC * 2,SEC * 2}; //ograniczenie dolne
  8. int TopLimiter[] = { SEC * 8,SEC * 4,SEC * 9,SEC * 10,SEC * 4 }; //ograniczenie górne
  9. char buf2[40]; //bufor przechowujący informacje o rodzajach czasu
  10. char mode = 0; //zmienna pomocnicza do przekazania trybu do LCD
  11. char zmienna; //zmienna pomocnicza do zapisu aktualnego trybu
  12. void Change(void); //prototyp funkcji Change();
  13. void Zbiornik(void); //prototyp funkcji Zbiornik();
  14. void Zbiornik(void) //funkcja Zbiornik();
  15. {
  16.     switch (mode_1) //działanie lewego górnego zbiornika
  17.     {
  18.     case 1:
  19.         Z1 = 1;
  20.         if (X2)
  21.         {
  22.             mode_1 = 2;
  23.             tim1 = TimTable[0];
  24.         }
  25.         break;
  26.     case 2:
  27.         Z1 = 1;
  28.         if (!X2) mode_1 = 1;
  29.         else if (X1) mode_1 = 4;
  30.         else if (!tim1)
  31.         {
  32.             mode_1 = 3;
  33.             tim1 = TimTable[1];
  34.         }
  35.         break;
  36.     case 3:
  37.         Z1 = 0;
  38.         if (!tim1)
  39.         {
  40.             mode_1 = 2;
  41.             tim1 = TimTable[0];
  42.         }
  43.         break;
  44.     case 4:
  45.         Z1 = 0;
  46.         if (!X2) mode_1 = 1;
  47.         break;
  48.     }
  49.  
  50.     switch (mode_2) //działanie prawego górnego zbiornika
  51.     {
  52.     case 1:
  53.         Z2 = 1;
  54.         if (X4)
  55.         {
  56.             mode_2 = 2;
  57.             tim2 = TimTable[2];
  58.         }
  59.     case 2:
  60.         Z2 = 1;
  61.         if (!tim2) mode_2 = 4;
  62.         else if (X3) mode_2 = 3;
  63.         else if (!X4) mode_2 = 1;
  64.         break;
  65.     case 3:
  66.         Z2 = 0;
  67.         if (!X4) mode_2 = 1;
  68.         break;
  69.     case 4:
  70.         Z2 = 1;
  71.         if (X3) mode_2 = 3;
  72.         break;
  73.     }
  74.  
  75.     switch (mode_3) //działanie dolnego zbiornika
  76.     {
  77.     case 1:
  78.         Z3 = 1; Z4 = 1; Z5 = 0; M = 1; G = 0;
  79.         if (X7)
  80.         {
  81.             mode_3 = 2;
  82.             tim3 = TimTable[4];
  83.         }
  84.         break;
  85.     case 2:
  86.         Z3 = 1; Z4 = 0; Z5 = 0; M = 0; G = 0;
  87.         if (X6)
  88.         {
  89.             mode_3 = 4;
  90.             tim3 = TimTable[4];
  91.         }
  92.         else if (!tim3)
  93.         {
  94.             mode_3 = 3;
  95.             tim3 = TimTable[4];
  96.         }
  97.         break;
  98.     case 3:
  99.         Z3 = 0; Z4 = 1; Z5 = 0; M = 0; G = 0;
  100.         if (X6)
  101.         {
  102.             mode_3 = 4;
  103.             tim3 = TimTable[4];
  104.         }
  105.         else if (!tim3)
  106.         {
  107.             mode_3 = 2;
  108.             tim3 = TimTable[4];
  109.         }
  110.         break;
  111.     case 4:
  112.         Z3 = 1; Z4 = 0; Z5 = 0; M = 0; G = 0;
  113.         if (!tim3)
  114.         {
  115.             mode_3 = 5;
  116.             tim3 = TimTable[4];
  117.         }
  118.         else if (X5)
  119.         {
  120.             mode_3 = 7;
  121.             tim3 = TimTable[3];
  122.         }
  123.         break;
  124.     case 5:
  125.         Z3 = 0; Z4 = 0; Z5 = 0; M = 1; G = 0;
  126.         if (!tim3)
  127.         {
  128.             mode_3 = 6;
  129.             tim3 = TimTable[4];
  130.         }
  131.         break;
  132.     case 6:
  133.         Z3 = 0; Z4 = 1; Z5 = 0; M = 0; G = 0;
  134.         if (X5)
  135.         {
  136.             mode_3 = 7;
  137.             tim3 = TimTable[3];
  138.         }
  139.         else if (!tim3)
  140.         {
  141.             mode_3 = 4;
  142.             tim3 = TimTable[4];
  143.         }
  144.         break;
  145.     case 7:
  146.         Z3 = 0; Z4 = 0; Z5 = 0; M = 1; G = 1;
  147.         if (T || !tim3) mode_3 = 8;
  148.         break;
  149.     case 8:
  150.         Z3 = 0; Z4 = 0; Z5 = 1; M = 0; G = 0;
  151.         if (!X7) mode_3 = 1;
  152.         break;
  153.     }
  154. }
  155.  
  156. void Change(void) //funkcja obsługująca zamianę wartości czasów w odnieśnieniu do obecnego trybu
  157. {
  158.     int j = 0;
  159.     if (mode == 0)
  160.     { //tryb automatyczny
  161.         for (j = 0; j < 5; j++) TimTable[j] = TimAuto[j];
  162.     }
  163.     else
  164.     { //tryb manualny
  165.         for (j = 0; j < 5; j++) TimTable[j] = TimManual[j];
  166.     }
  167. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement