Facebook
From xxx, 5 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 230
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #define sek             250                                     // SP-AVR: 1 sekunda = 250*4ms (200 przerwań po 4ms)
  3.  
  4. volatile int tim1=0;                            // Odmierzanie czasu w przerwaniu int_T0
  5. volatile int tim2 = 1 * sek;            // Zmienna czasu pomocnicza
  6. volatile int foto = 0;                          // Ilość zdjęć
  7. volatile int F = 0;                                     // Zmienna pomocnicza ilości zdjęć
  8. char stan1=1;  
  9. char stan2 = 0; // Stan automatu (procesu)
  10. int  licz1=0;                                           // Licznik generowanych impulsów
  11. int  T_1=3*sek;                                         // T1=3[s]
  12. void zadanie1(void)
  13. {
  14.         switch (stan1)
  15.         {
  16.         case 1:L1 = 0; L2 = 0; L3 = 0; L4 = 0;
  17.                 if (aK1)
  18.                 {
  19.                         tim1 = 2 * sek; stan1 = 2;
  20.                 }break;
  21.         case 2:L1 = 0; L2 = 0; L3 = 0; L4 = 0;
  22.                 if (!tim1)
  23.                 {
  24.                         tim1 = 3 * sek; stan1 = 3;
  25.                 }break;
  26.         case 3:L1 = 1; L2 = 0; L3 = 0; L4 = 0;
  27.                 if (!tim1)
  28.                 {
  29.                         stan1 = 4;
  30.                 }break;
  31.         case 4:L1 = 0; L2 = 0; L3 = 0; L4 = 0;
  32.                 if (aK2)
  33.                 {
  34.                         tim1 = 2 * sek; stan1 = 5;
  35.                 }
  36.                 else if (aK3) stan1 = 17;
  37.                 else if (aK1)
  38.                 {
  39.                         stan1 = 23; tim1 = 2 * sek;
  40.                 }
  41.                 else if (aK4)
  42.                 {
  43.                         tim1 = 2 * sek; stan1 = 18;
  44.                 }
  45.                         break;
  46.         case 5:L1 = 0; L2 = 0; L3 = 0; L4 = 0;
  47.                 if (!tim1)
  48.                 {
  49.                         tim1 = 1 * sek; stan1 = 6;
  50.                 }break;
  51.         case 6:L1 = 0; L2 = 0; L3 = 0; L4 = 1;
  52.                 if (!tim1)stan1 = 7;break;
  53.         case 7:L1 = 0; L2 = 0; L3 = 0; L4 = 0;
  54.                 if (aK2)
  55.                 {
  56.                         tim1 = 2 * sek; stan1 = 8;
  57.                 }
  58.                 else if (aK4) { tim1 = 2 * sek; stan1 = 29; }
  59.                 else if (aK3) stan1 = 26;
  60.                 break;
  61.         case 8:L1 = 0; L2 = 0; L3 = 0; L4 = 0;
  62.                 if (!tim1)
  63.                 {
  64.                         tim1 = 2 * sek; stan1 = 9;
  65.                 }
  66.         case 9:L1 = 0; L2 = 0; L3 = 0; L4 = 1;
  67.                 if (!tim1)stan1 = 10; break;
  68.         case 10:L1 = 0; L2 = 0; L3 = 0; L4 = 0;
  69.                 if (aK4)
  70.                 {
  71.                         tim1 = 2 * sek; stan1 = 22;
  72.                 }
  73.                 else if (aK2)
  74.                 {
  75.                         tim1 = 2 * sek; stan1 = 11;
  76.                 }
  77.                 else if (aK3) stan1 = 27;break;
  78.         case 11:L1 = 0; L2 = 0; L3 = 0; L4 = 0;
  79.                 if (!tim1)
  80.                 {
  81.                         tim1 = 3 * sek; stan1 = 12;
  82.                 }
  83.         case 12:L1 = 0; L2 = 0; L3 = 0; L4 = 1;
  84.                 if (!tim1) stan1 = 13; break;
  85.         case 13:L1 = 0; L2 = 0; L3 = 0; L4 = 0;
  86.                 if (aK2)
  87.                 {
  88.                         tim1 = 2 * sek; stan1 = 14;
  89.                 }
  90.                 else if (aK4)
  91.                 {
  92.                         tim1 = 2 * sek; stan1 = 21;
  93.                 }
  94.                 else if (aK3) stan1 = 28; break;
  95.         case 14:L1 = 0; L2 = 0; L3 = 0; L4 = 0;
  96.                 if (!tim1)
  97.                 {
  98.                         tim1 = 1 * sek; stan1 = 15;
  99.                 }break;
  100.         case 15:L1 = 0; L2 = 0; L3 = 1; L4 = 0;
  101.                 if (!tim1)
  102.                 {
  103.                         tim1 = 1 * sek; stan1 = 16;
  104.                 }
  105.                 else if (aK1)
  106.                 {
  107.                         tim1 = 2 * sek; stan1 = 25;
  108.                 }
  109.                 break;
  110.         case 16:L1 = 0; L2 = 0; L3 = 0; L4 = 0;
  111.                 if (!tim1)
  112.                 {
  113.                         tim1 = 1 * sek; stan1 = 15;
  114.                 }
  115.         case 17:L1 = 0; L2 = 1; L3 = 0; L4 = 0;
  116.                 if (!aK3) stan1 = 4;  break;
  117.         case 18:L1 = 0; L2 = 0; L3 = 0; L4 = 0;
  118.                 if (!tim1)
  119.                 {
  120.                         tim1 = 2 * sek; stan1 = 19;
  121.                 }
  122.         case 19:L1 = 0; L2 = 0; L3 = 1; L4 = 0;
  123.                 if (!tim1)
  124.                 {
  125.                         tim1 = 2 * sek; stan1 = 20;
  126.                 }
  127.                 else if (aK1)
  128.                 {
  129.                         tim1 = 2 *sek; stan1 = 29;
  130.                 }break;
  131.         case 20:L1 = 0; L2 = 0; L3 = 0; L4 = 0;
  132.                 if (!tim1)
  133.                 {
  134.                         tim1 = 2 * sek; stan1 = 19;
  135.                 }break;
  136.         case 21:L1 = 0; L2 = 1; L3 = 0; L4 = 0;
  137.                 if (!tim1)
  138.                 {
  139.                         tim1 = 2 * sek; stan1 = 9;
  140.                 }break;
  141.         case 22:L1 = 0; L2 = 1; L3 = 0; L4 = 0;
  142.                 if (!tim1)stan1 = 6; break;
  143.         case 23:L1 = 0; L2 = 0; L3 = 0; L4 = 0;
  144.                 if (!tim1)
  145.                 {
  146.                         tim1 = 2 * sek; stan1 = 24;
  147.                 }
  148.         case 24:L1 = 1; L2 = 0; L3 = 0; L4 = 0;
  149.                 if (!tim1)stan1 = 1; break;
  150.         case 25:L1 = 0; L2 = 0; L3 = 0; L4 = 0;
  151.                 if (!tim1)stan1 = 4; break;
  152.         case 26:L1 = 0; L2 = 1; L3 = 0; L4 = 0;
  153.                 if (!aK3)stan1 = 7; break;
  154.         case 27:L1 = 0; L2 = 1; L3 = 0; L4 = 0;
  155.                 if (!aK3)stan1 = 10; break;
  156.         case 28:L1 = 0; L2 = 1; L3 = 0; L4 = 0;
  157.                 if (!aK3)stan1 = 13; break;
  158.         case 29:L1 = 0; L2 = 0; L3 = 0; L4 = 0;
  159.                 if (!tim1) stan1 = 4;break;
  160.         }
  161.         if (tim1)--tim1;}
  162.