SHARE
TWEET

kwsm_mikro

pabloducato Apr 17th, 2019 86 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*************************************************************************/
  2. /*  Program testowy dla obiektu X oprogamowania SPSym                    */
  3. /*************************************************************************/
  4. #include "spsym.h"          // Pomocnicze funkcje i deklaracje
  5. #include <stdio.h>          // Stadnardowe I/O
  6. #include <conio.h>
  7.  
  8. // --- Makrodefinicje dla obiektu X ---
  9. #define T  X8
  10.  
  11. #define Z1 Y1
  12. #define Z2 Y2
  13. #define Z3 Y3
  14. #define Z4 Y4
  15. #define Z5 Y5
  16. #define M  Y6
  17. #define G1 Y7
  18.  
  19. // --- Zmienne użytkownika ---
  20. int licz=0;                 // Licznik przerwań
  21.  
  22. //TIMERY
  23. char counterBeeps, counterTimer = 0, TSP;
  24. int timTime = 0;
  25.  
  26. //ZMIENNE ODPOWIEDZIALNE ZA OTWARCIE/ZAMKNIECIE DRZWICZEK
  27.  
  28. char door = 0, workMode = 1, pause = 0;
  29. char work = 0;
  30.  
  31.  
  32. char chosenMode = 1;
  33. char viewingChosenMode = 1;
  34. char counterViewingChosenMode;
  35. char timeMode = 1;
  36. char viewingTime = 1;
  37. char timeShowingMode = 1;
  38. char counterTimerBeeps;
  39. unsigned char tmpMiuntes;
  40. unsigned char tmpSecondsD;
  41. unsigned char tmpSecondsJ;
  42. const char *text0 = "DOOR";
  43. const char *text1 = "FROZEN";
  44. const char *text2 = "WARMING";
  45. const char *text3 = "GRILL";
  46. const char *text4 = "BOILING";
  47. const char *text5 = "SERVICE";
  48. const char *text;
  49. const char *p = "NO";
  50.  
  51.  
  52. //ZMIENNE ODPOWIEDZIALNE ZA STEROWANIE MOCA
  53. int powerMode = 1;
  54. char timPower, power1, power0;
  55. int power = 0;
  56. char powerAdjusting = 1;
  57.  
  58. char timeshowing2 = 1;
  59.  
  60. void prolog(void)           // Inicjowanie programu (jednorazowo przy starcie)
  61. {
  62.     L1=L2=L3=L4=0;          // Zgaszenie LED-ów
  63. }
  64.  
  65. void oblicz(void)           // Kod użytkownika wykonywany cyklicznie
  66. {
  67.    
  68. pK1=aK1; pK2=aK2; pK3=aK3; pK4=aK4;
  69. pK5=aK5; pK6=aK6; pK7=aK7; pK8=aK8;
  70.  
  71. power1 = (int)(power*20);
  72. power0 = 20 - power1;
  73.  
  74.  
  75. //OTWARCIE/ZAMKNIECIE DRZWICZEK
  76. if(!work && !door && pK1) {door = 1; L1=1; viewingChosenMode=0; timeMode=0; powerMode=0; workMode = 0; }
  77. else if(!work && door && pK1) {door = 0; L1=0; viewingChosenMode=1; timeMode=1; powerMode=1; workMode = 1;}
  78.  
  79.  
  80. //TRYB PRACY MIKROFALOWKI
  81. //ODMRAZANIE
  82. //GRZANIE
  83. //GRILLOWANIE
  84. //GOTOWANIE
  85. //CZYSZCZENIE SPRZĘTU
  86.  
  87. if(!work)
  88. {
  89.     switch(chosenMode)
  90.     {
  91.         case 1:
  92.         {
  93.             if(pK2) chosenMode = 2;
  94.         }
  95.         break;
  96.         case 2:
  97.         {
  98.             if(!pK2)
  99.             {
  100.                 chosenMode = 1;
  101.                 workMode++;
  102.                 if(workMode > 5) workMode = 1;
  103.             }
  104.            
  105.         }
  106.         break;
  107.     }
  108. }
  109.  
  110. if(workMode == 0)
  111. text = text0;
  112. else if(workMode == 1)
  113. text = text1;
  114. else if (workMode == 2)
  115. text = text2;
  116. else if (workMode == 3)
  117. text = text3;
  118. else if (workMode == 4)
  119. text = text4;
  120. else if (workMode == 5)
  121. text = text5;
  122.  
  123.  
  124. //WYSWIETLANIE WYBRANEGO TRYBU PRACY MIKROFALOWKI
  125.  
  126. switch(viewingChosenMode)
  127.     {
  128.     case 0: L2=0;
  129.     break;
  130.     case 1:
  131.     {
  132.         L2 = 0;
  133.         counterViewingChosenMode = workMode;
  134.         if(counterViewingChosenMode)
  135.         {
  136.             counterBeeps = 2;
  137.             viewingChosenMode = 2;
  138.         }
  139.         else L2 = 1;
  140.     }
  141.         break;
  142.     case 2:
  143.     {
  144.         L2 = 1;
  145.         if(!counterBeeps && counterViewingChosenMode > 1) {viewingChosenMode = 3; counterBeeps = 2; counterViewingChosenMode--;}
  146.         else if(!counterBeeps && counterViewingChosenMode == 1) {viewingChosenMode = 3; counterBeeps = 15; counterViewingChosenMode--;}
  147.     }
  148.         break;
  149.     case 3:
  150.     {
  151.         L2 = 0;
  152.         if(!counterBeeps && counterViewingChosenMode) {viewingChosenMode = 2; counterBeeps = 2;}
  153.         else if(!counterBeeps && !counterViewingChosenMode) viewingChosenMode = 1;
  154.     }
  155.         break;
  156.  }
  157.    
  158. //USTAWIENIA CZASU
  159.  
  160. switch(timeMode)
  161. {
  162.         case 1:
  163.             if(aK6 && timTime>0) {timTime=timTime-10;}
  164.             else if(aK6 && timTime==0);
  165.             else if(aK7 && timTime<3000) {timTime=timTime+10;}
  166.             else if(aK7 && timTime==3000);
  167.             break;
  168. }
  169.  
  170.  //ZMIANA MOCY MIKROFALOWKI
  171.  
  172.  switch(powerAdjusting)
  173.     {
  174.         case 1:
  175.         {
  176.             if(pK4) powerAdjusting = 2;
  177.             else if(pK3) powerAdjusting = 3;
  178.         }
  179.         break;
  180.         case 2:
  181.         {
  182.             if(!pK4 && L5 == 0)
  183.             {
  184.                 powerAdjusting = 1;
  185.                 power+=100.00;
  186.                 if(power>1000) power = 0;
  187.             }      
  188.         }
  189.         break;
  190.         case 3:
  191.         {
  192.             if(!pK3 && L5 == 0)
  193.             {
  194.                 powerAdjusting = 1;
  195.                 power-=100.00;
  196.                 if(power<0) power = 0;
  197.             }
  198.         }
  199.         break;
  200.     }
  201.  
  202.  // USTAWIENIE MOCY
  203.  // WSPOLCZYNNIK WYPELNIENIA
  204.  
  205.  switch(powerMode)
  206.     {
  207.     case 0: L4=0; L3=0;
  208.     break;
  209.     case 1:
  210.     {
  211.         L4 = 0; L3=0;
  212.         timPower = power1;
  213.         if(power) powerMode = 2;
  214.         else powerMode = 4;
  215.     }
  216.         break;
  217.     case 2:
  218.     {
  219.         L4 = 1; L3 = 1;
  220.         if(!timPower && power < 1) {powerMode = 3; timPower = power0;}
  221.         else if(!power) powerMode = 4;
  222.     }
  223.         break;
  224.     case 3:
  225.     {
  226.         L4 = 0; L3 = 0;
  227.         if(!timPower && power > 0) {powerMode = 2; timPower = power1;}
  228.         else if(!power) powerMode = 5;
  229.     }
  230.         break;
  231.     case 4:
  232.     {
  233.         L4 = 0; L3 = 0;
  234.         if(power) {powerMode = 3; timPower = power0;}
  235.         else powerMode = 5;
  236.     }
  237.     break;
  238.     case 5:
  239.     {
  240.         L4 = 1; L3 = 1;
  241.         if(power) {powerMode = 3; timPower = power0;}
  242.         else powerMode = 4;
  243.     }
  244.     break;
  245.     }
  246.  
  247. if(door == 0 && pK5 && work==0 && timTime > 0 && power != 0)
  248. {L5 = 1; work=1; door = 0; viewingChosenMode=0; timeMode=0; powerMode=0; p="ON";}
  249. else if(L5 == 1 && timTime%206)
  250. {L5 = 0;}
  251. else if( pK5 && work==1)
  252. {L5 = 0; work=0; viewingChosenMode=1; timeMode=1; powerMode=1; p="P";}
  253. else if( timTime == 0 && work==1)
  254. {L5 = 0; work=0; viewingChosenMode=1; timeMode=1; powerMode=1; power=0; p="NO";}
  255.  
  256.    
  257.     if(counterBeeps) --counterBeeps;
  258.     if(timTime && work) --timTime;
  259.     if(timPower) --timPower; //USTAWIENIE MOCY - WSPOLCZYNNIK WYPELNIENIA
  260.    
  261.     sprintf(buf,"Time:%d   Power:%d               ",(int)timTime/9, (int)power);
  262.     LCD_xy(1,1); LCD_puts(buf);
  263.     sprintf(buf,"Mode:0%d   %s %s  ", (int)workMode, text, p);
  264.     LCD_xy(1,2); LCD_puts(buf);
  265.    
  266. }
  267.  
  268.  
  269. void przerwanie(void)       // Obsługs przerwania od układu czasowo-licznikowego
  270. {
  271. }
  272.  
  273. void komunikacja(void)      // Obsługa komunikacji szeregowej
  274. {}
  275.  
  276. #ifdef Symulator_PC
  277. void wykres(void)           // Dane do tabeli i wykresu (dot. symulacji obiektu)
  278. {
  279.     aTab[0] = (int)(AI[0]/10.0);
  280.     aTab[1] = (int)(AI[1]/5.0);
  281.     aTab[2] = AI[7];
  282.     aTab[3] = (int)(licz/100.0);
  283.     aTab[4] = AO[0];
  284.     aTab[5] = AO[7];
  285.     aTab[6] = -120;
  286.     aTab[7] =  120;
  287.  
  288.     bTab[0] = (int)aK1;
  289.     bTab[1] = (int)aK2;
  290.     bTab[2] = (int)aK3;
  291.     bTab[3] = (int)aK4;
  292.     bTab[4] = (int)L1;
  293.     bTab[5] = (int)L2;
  294.     bTab[6] = (int)L3;
  295.     bTab[7] = (int)L4;
  296.     bTab[8] = (int)L5;
  297.     bTab[9] = G1;
  298.     bTab[10] = M;
  299.     bTab[11] = 11;
  300.     bTab[12] = 12;
  301.     bTab[13] = 13;
  302.     bTab[14] = 14;
  303.     bTab[15] = 15;
  304. }
  305. #endif
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top