Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.33 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3.  
  4. void Ustaw(); // ustawia swiatla w pokojach
  5. void Pisz(); // wypisuje ilosc osob w pokojach (dla testów)
  6.  
  7.  
  8. int l[5] = {0,0,0,0,0};
  9. int kier = 0;
  10. int s = 0;
  11. int sw = 0;
  12. int s[5] = {0,0,0,0,0};
  13.  
  14. int main() {
  15.    
  16.     do {
  17.         Ustaw();
  18.         Pisz();
  19.         kier = IORD(SW_SLIDERS_BASE, 0) & SW9;   //kierunek przechodzenia
  20.  
  21.         sw = IORD(SW_SLIDERS_BASE, 0);
  22.  
  23.         // wybór stanu w zależności od wart na wejsciu SW , stan = który czujnik CD
  24.         if (sw & SW0)
  25.             s = 1;
  26.         else if (sw & SW1)
  27.             s = 2;
  28.         else if (sw & SW2)
  29.             s = 3;
  30.         else if (sw & SW3)
  31.             s = 4;
  32.         else if (sw & SW4)
  33.             s = 5;
  34.  
  35.  
  36.         // przechodzenie miedzy pokojami
  37.         switch (s)
  38.         {
  39.         case 1:
  40.             if (kier)
  41.             {
  42.                 if (l[2] > 0)
  43.                 {
  44.                     l[0]++;
  45.                     l[2]--;
  46.                 }
  47.                 else
  48.                     IOWR(LEDS_BASE,0, LEDS0 | IORD(LEDS_BASE, 0)); //dioda bledu - leds0
  49.             }
  50.             else
  51.             {
  52.                 if (l[0] > 0)
  53.                 {
  54.                     l[0]--;
  55.                     l[2]++;
  56.                 }
  57.                 else
  58.                     IOWR(LEDS_BASE, 0, LEDS0 | IORD(LEDS_BASE, 0)); //dioda bledu - leds0
  59.             }
  60.             break;
  61.         case 2:
  62.             if (kier)
  63.             {
  64.                 if (l[0] > 0)
  65.                 {
  66.                     l[1]++;
  67.                     l[0]--;
  68.                 }
  69.                 else
  70.                     IOWR(LEDS_BASE, 0, LEDS0 | IORD(LEDS_BASE, 0)); //dioda bledu - leds0
  71.             }
  72.             else
  73.             {
  74.                 if (l[1] > 0)
  75.                 {
  76.                     l[1]--;
  77.                     l[0]++;
  78.                 }
  79.                 else
  80.                     IOWR(LEDS_BASE, 0, LEDS0 | IORD(LEDS_BASE, 0)); //dioda bledu - leds0
  81.             }
  82.             break;
  83.         case 3:
  84.             if (kier)
  85.             {
  86.                 if (l[1] > 0)
  87.                 {
  88.                     l[4]++;
  89.                     l[1]--;
  90.                 }
  91.                 else
  92.                     IOWR(LEDS_BASE, 0, LEDS0 | IORD(LEDS_BASE, 0)); //dioda bledu - leds0
  93.             }
  94.             else
  95.             {
  96.                 if (l[4] > 0)
  97.                 {
  98.                     l[4]--;
  99.                     l[1]++;
  100.                 }
  101.                 else
  102.                     IOWR(LEDS_BASE, 0, LEDS0 | IORD(LEDS_BASE, 0)); //dioda bledu - leds0
  103.             }
  104.             break;
  105.         case 4:
  106.             if (kier)
  107.             {
  108.                 if (l[4] > 0)
  109.                 {
  110.                     l[4]--;
  111.                 }
  112.                 else
  113.                     IOWR(LEDS_BASE, 0, LEDS0 | IORD(LEDS_BASE, 0)); //dioda bledu leds0
  114.             }
  115.             else
  116.             {
  117.                 l[4]++;
  118.             }
  119.             break;
  120.         case 5:
  121.             if (kier)
  122.             {
  123.                 if (l[2] > 0)
  124.                 {
  125.                     l[3]++;
  126.                     l[2]--;
  127.                 }
  128.                 else
  129.                     IOWR(LEDS_BASE, 0, LEDS0 | IORD(LEDS_BASE, 0)); //dioda bledu leds0
  130.             }
  131.             else
  132.             {
  133.                 if (l[3] > 0)
  134.                 {
  135.                     l[3]--;
  136.                     l[2]++;
  137.                 }
  138.                 else
  139.                     IOWR(LEDS_BASE, 0, LEDS0 | IORD(LEDS_BASE, 0)); //dioda bledu leds0
  140.             }
  141.             break;
  142.         default:
  143.             break;
  144.         }
  145.     }while (1);
  146.  
  147.  
  148.    
  149.     return 0;
  150. }
  151.  
  152. void Pisz()
  153. {
  154.     for (int i = 0; i < 5; i++)
  155.     {
  156.         printf("l%d = %d ",i+1,l[i]);
  157.     }
  158. }
  159.  
  160. void Ustaw()
  161. {
  162.    
  163.    
  164.     for (int i = 0; i < 5; i++)
  165.     {
  166.         if (l[i] > 0)
  167.             s[i] = 1;
  168.         else
  169.             s[i] = 0;
  170.     }
  171.    
  172.     IOWR(LEDS_BASE, 0, (LEDS1*s[0]) | (LEDS2*s[1]) | (LEDS3*s[2]) | (LEDS4*s[3]) | (LEDS5*s[4]));
  173.    
  174.    
  175.    
  176.    
  177.    
  178.    
  179.    
  180.     /*
  181.     if (l[0] > 0)
  182.         IOWR(LEDS_BASE, 0, LEDS1 | IORD(LEDS_BASE, 0));
  183.     else
  184.     {
  185.         IOWR(LEDS_BASE, 0, LEDS1 ^ IORD(LEDS_BASE, 0));
  186.     }
  187.     if (l[1] > 0)
  188.         IOWR(LEDS_BASE, 0, LEDS2 | IORD(LEDS_BASE, 0));
  189.     else
  190.     {
  191.         IOWR(LEDS_BASE, 0, LEDS2 ^ IORD(LEDS_BASE, 0));
  192.     }
  193.     if (l[2] > 0)
  194.         IOWR(LEDS_BASE, 0, LEDS3 | IORD(LEDS_BASE, 0));
  195.     else
  196.     {
  197.         IOWR(LEDS_BASE, 0, LEDS3 ^ IORD(LEDS_BASE, 0));
  198.     }
  199.     if (l[3] > 0)
  200.         IOWR(LEDS_BASE, 0, LEDS4 | IORD(LEDS_BASE, 0));
  201.     else
  202.     {
  203.         IOWR(LEDS_BASE, 0, LEDS4 ^ IORD(LEDS_BASE, 0));
  204.     }
  205.     if (l[4] > 0)
  206.         IOWR(LEDS_BASE, 0, LEDS5 | IORD(LEDS_BASE, 0));
  207.     else
  208.     {
  209.         IOWR(LEDS_BASE, 0, LEDS5 ^ IORD(LEDS_BASE, 0));
  210.     }*/
  211. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement