#define _CRT_SECURE_NO_WARNINGS #define sek 250 // SP-AVR: 1 sekunda = 250*4ms (200 przerwań po 4ms) volatile int tim1=0; // Odmierzanie czasu w przerwaniu int_T0 volatile int tim2 = 1 * sek; // Zmienna czasu pomocnicza volatile int foto = 0; // Ilość zdjęć volatile int F = 0; // Zmienna pomocnicza ilości zdjęć char stan1=1; char stan2 = 0; // Stan automatu (procesu) int licz1=0; // Licznik generowanych impulsów int T_1=3*sek; // T1=3[s] void zadanie1(void) { switch (stan1) { case 1:L1 = 0; L2 = 0; L3 = 0; L4 = 0; if (aK1) { tim1 = 2 * sek; stan1 = 2; }break; case 2:L1 = 0; L2 = 0; L3 = 0; L4 = 0; if (!tim1) { tim1 = 3 * sek; stan1 = 3; }break; case 3:L1 = 1; L2 = 0; L3 = 0; L4 = 0; if (!tim1) { stan1 = 4; }break; case 4:L1 = 0; L2 = 0; L3 = 0; L4 = 0; if (aK2) { tim1 = 2 * sek; stan1 = 5; } else if (aK3) stan1 = 17; else if (aK1) { stan1 = 23; tim1 = 2 * sek; } else if (aK4) { tim1 = 2 * sek; stan1 = 18; } break; case 5:L1 = 0; L2 = 0; L3 = 0; L4 = 0; if (!tim1) { tim1 = 1 * sek; stan1 = 6; }break; case 6:L1 = 0; L2 = 0; L3 = 0; L4 = 1; if (!tim1)stan1 = 7;break; case 7:L1 = 0; L2 = 0; L3 = 0; L4 = 0; if (aK2) { tim1 = 2 * sek; stan1 = 8; } else if (aK4) { tim1 = 2 * sek; stan1 = 29; } else if (aK3) stan1 = 26; break; case 8:L1 = 0; L2 = 0; L3 = 0; L4 = 0; if (!tim1) { tim1 = 2 * sek; stan1 = 9; } case 9:L1 = 0; L2 = 0; L3 = 0; L4 = 1; if (!tim1)stan1 = 10; break; case 10:L1 = 0; L2 = 0; L3 = 0; L4 = 0; if (aK4) { tim1 = 2 * sek; stan1 = 22; } else if (aK2) { tim1 = 2 * sek; stan1 = 11; } else if (aK3) stan1 = 27;break; case 11:L1 = 0; L2 = 0; L3 = 0; L4 = 0; if (!tim1) { tim1 = 3 * sek; stan1 = 12; } case 12:L1 = 0; L2 = 0; L3 = 0; L4 = 1; if (!tim1) stan1 = 13; break; case 13:L1 = 0; L2 = 0; L3 = 0; L4 = 0; if (aK2) { tim1 = 2 * sek; stan1 = 14; } else if (aK4) { tim1 = 2 * sek; stan1 = 21; } else if (aK3) stan1 = 28; break; case 14:L1 = 0; L2 = 0; L3 = 0; L4 = 0; if (!tim1) { tim1 = 1 * sek; stan1 = 15; }break; case 15:L1 = 0; L2 = 0; L3 = 1; L4 = 0; if (!tim1) { tim1 = 1 * sek; stan1 = 16; } else if (aK1) { tim1 = 2 * sek; stan1 = 25; } break; case 16:L1 = 0; L2 = 0; L3 = 0; L4 = 0; if (!tim1) { tim1 = 1 * sek; stan1 = 15; } case 17:L1 = 0; L2 = 1; L3 = 0; L4 = 0; if (!aK3) stan1 = 4; break; case 18:L1 = 0; L2 = 0; L3 = 0; L4 = 0; if (!tim1) { tim1 = 2 * sek; stan1 = 19; } case 19:L1 = 0; L2 = 0; L3 = 1; L4 = 0; if (!tim1) { tim1 = 2 * sek; stan1 = 20; } else if (aK1) { tim1 = 2 *sek; stan1 = 29; }break; case 20:L1 = 0; L2 = 0; L3 = 0; L4 = 0; if (!tim1) { tim1 = 2 * sek; stan1 = 19; }break; case 21:L1 = 0; L2 = 1; L3 = 0; L4 = 0; if (!tim1) { tim1 = 2 * sek; stan1 = 9; }break; case 22:L1 = 0; L2 = 1; L3 = 0; L4 = 0; if (!tim1)stan1 = 6; break; case 23:L1 = 0; L2 = 0; L3 = 0; L4 = 0; if (!tim1) { tim1 = 2 * sek; stan1 = 24; } case 24:L1 = 1; L2 = 0; L3 = 0; L4 = 0; if (!tim1)stan1 = 1; break; case 25:L1 = 0; L2 = 0; L3 = 0; L4 = 0; if (!tim1)stan1 = 4; break; case 26:L1 = 0; L2 = 1; L3 = 0; L4 = 0; if (!aK3)stan1 = 7; break; case 27:L1 = 0; L2 = 1; L3 = 0; L4 = 0; if (!aK3)stan1 = 10; break; case 28:L1 = 0; L2 = 1; L3 = 0; L4 = 0; if (!aK3)stan1 = 13; break; case 29:L1 = 0; L2 = 0; L3 = 0; L4 = 0; if (!tim1) stan1 = 4;break; } if (tim1)--tim1;}