o: ActiveSupport::Cache::Entry :@compressedF:@value"ãR"ÝR
| main.c | ||
|---|---|---|
| 30 | 30 |
#use fast_io(H) |
| 31 | 31 |
#use fast_io(G) |
| 32 | 32 |
|
| 33 |
#define T_REVERS 2 // 2*256 ms = 0,5 s; pred prepnutim rele (zastaveni motoru a vybiti kondenzatoru) |
|
| 34 |
#define T_START 1 // 1*256 ms = 0,3 s; po prepnuti rele do sepnuti triaku |
|
| 35 |
#define T_GO 117 // 117*256 ms = 30 s; max. beh rolety |
|
| 36 |
#define T_GO_ZALUZIE 6 // cca 1,5 s; beh zaluzie (pouze na preklopeni lamel) |
|
| 37 |
#define T_RECEIVE 10 // cca 2,6 s |
|
| 38 |
#define ZAKMIT 2000 // pocet pruchodu hlavni smyckou pred opetovnou detekci prepnuti vypinace |
|
| 33 |
#define T_REVERS 2 // 2*256 ms = 0,5 s; pred prepnutim rele (zastaveni motoru a vybiti kondenzatoru) |
|
| 34 |
#define T_START 1 // 1*256 ms = 0,3 s; po prepnuti rele do sepnuti triaku |
|
| 35 |
#define T_GO 117 // 117*256 ms = 30 s; max. beh rolety |
|
| 36 |
#define T_GO_ZALUZIE 2500/256 // cca 2 s; beh zaluzie (pouze na preklopeni lamel) |
|
| 37 |
#define T_RECEIVE 10 // cca 2,6 s |
|
| 38 |
#define TIMEOUT_SPAJZ 255 // Timeout svetlo spajz cca minuta |
|
| 39 |
#define ZAKMIT 2000 // pocet pruchodu hlavni smyckou pred opetovnou detekci prepnuti vypinace |
|
| 39 | 40 |
|
| 40 |
#define OR106Z PIN_A0 // t1 Roleta trucovna zapad
|
|
| 41 |
//!!! STUDENAK na triaku spolecny vyvod !!! #define O PIN_A0 // t1
|
|
| 41 | 42 |
#define OR110N PIN_A1 // t2 Zaluzie koupelna dole sever |
| 42 | 43 |
#define OR104V PIN_A2 // t3 Roleta lab vychod |
| 43 | 44 |
#define OR104J PIN_A3 // t4 Roleta lab jih |
| ... | ... | |
| 48 | 49 |
|
| 49 | 50 |
#define OR208V PIN_F0 // t1 Roleta Zizala vychod |
| 50 | 51 |
#define OR208J PIN_F1 // t2 Roleta Zizala jih |
| 51 |
//??? #define OR107 PIN_F2 // t3 |
|
| 52 |
//??? #define OR107 PIN_F3 // t4
|
|
| 52 |
//??? #define OR107 PIN_F2 // t3 Roleta satna
|
|
| 53 |
#define OR106J PIN_F3 // t4 Roleta trucovna jih
|
|
| 53 | 54 |
#define OR201Z PIN_F4 // t5 Roleta chodba nahore |
| 54 | 55 |
#define OR205N PIN_F5 // t6 Roleta puda |
| 55 | 56 |
//??? #define OR105 PIN_F6 // t7 Roleta kuchyn |
| 56 |
//#define O... PIN_F7 // t8
|
|
| 57 |
#define OR106Z PIN_F7 // t8 Roleta trucovna zapad
|
|
| 57 | 58 |
|
| 58 | 59 |
|
| 59 | 60 |
#define OS103J PIN_B0 // t1 Svetla loznice |
| ... | ... | |
| 83 | 84 |
|
| 84 | 85 |
//#define O.... PIN_G0 // t8 |
| 85 | 86 |
//#define O.... PIN_G1 // t7 |
| 86 |
//#define O.... PIN_G2 // t6
|
|
| 87 |
#define OS108A PIN_G2 // t6 Svetlo spajz
|
|
| 87 | 88 |
#define OS208A PIN_G3 // t5 Svetlo Zizala stred |
| 88 | 89 |
#define OS100A PIN_G4 // t4 Svetlo prujezd venku |
| 89 | 90 |
|
| ... | ... | |
| 103 | 104 |
#define IS204AJ input(PIN_J4) // E Vypinac svetlo radiomistnost u dveri na chodbu |
| 104 | 105 |
#define IR204ZD input(PIN_J5) // F Vypinac roleta radiomistnost dolu |
| 105 | 106 |
#define IR204ZU input(PIN_J6) // G Vypinac roleta radiomistnost nahoru |
| 106 |
//#define I.... input(PIN_J7) // H
|
|
| 107 |
#define IS108A input(PIN_J7) // H Mikrospinac spajz
|
|
| 107 | 108 |
|
| 108 | 109 |
#define IS208AN input(PIN_H0) // A Vypinac svetlo stred Zizala u dveri na chodbu //POZOR! Jsou prohozeny rolety J a V a smery U a D |
| 109 | 110 |
#define IR208JD input(PIN_H1) // B Vypinac roleta vychod Zizala nahoru u dveri |
| ... | ... | |
| 155 | 156 |
#define R204Z 6 |
| 156 | 157 |
#define R208V 7 |
| 157 | 158 |
#define R208J 8 |
| 159 |
#define R106J 9 |
|
| 160 |
#define R106Z 10 |
|
| 158 | 161 |
|
| 159 | 162 |
typedef enum {UP, DOWN, REVERS_UP, REVERS_DOWN, RUN_UP, RUN_DOWN, RUN_UP_WAITING} relay_state;
|
| 160 | 163 |
relay_state relay; // Stavy rele |
| ... | ... | |
| 164 | 167 |
int8 timer_revers; // Prodleva na vybiti kondenzatoru pa zastaveni rolety pred prepnutim rele |
| 165 | 168 |
int8 timer_start; // Prodleva na prepnuti rele pred startem rolety |
| 166 | 169 |
int8 timer; // Casovac komunikace |
| 170 |
int8 tS108; // Casovac svetlo spajz |
|
| 167 | 171 |
|
| 168 | 172 |
#int_TIMER0 |
| 169 | 173 |
void TIMER0_isr(void) |
| 170 | 174 |
{
|
| 171 | 175 |
if(timer>0) timer--; |
| 176 |
if(tS108>0) tS108--; |
|
| 172 | 177 |
if(timer_run>0) timer_run--; |
| 173 | 178 |
if(timer_revers>0) timer_revers--; |
| 174 | 179 |
if(timer_start>0) timer_start--; |
| ... | ... | |
| 196 | 201 |
if (rol[R204Z]==RUN) ON(OR204Z); |
| 197 | 202 |
if (rol[R208V]==RUN) ON(OR208V); |
| 198 | 203 |
if (rol[R208J]==RUN) ON(OR208J); |
| 204 |
if (rol[R106J]==RUN) ON(OR106J); |
|
| 205 |
if (rol[R106Z]==RUN) ON(OR106Z); |
|
| 199 | 206 |
} |
| 200 | 207 |
|
| 201 | 208 |
void run(int8 roleta) // Spust konkretni roletu |
| ... | ... | |
| 211 | 218 |
case R204Z: ON(OR204Z); break; |
| 212 | 219 |
case R208V: ON(OR208V); break; |
| 213 | 220 |
case R208J: ON(OR208J); break; |
| 221 |
case R106J: ON(OR106J); break; |
|
| 222 |
case R106Z: ON(OR106Z); break; |
|
| 214 | 223 |
} |
| 215 | 224 |
} |
| 216 | 225 |
|
| ... | ... | |
| 227 | 236 |
case R204Z: OFF(OR204Z); break; |
| 228 | 237 |
case R208V: OFF(OR208V); break; |
| 229 | 238 |
case R208J: OFF(OR208J); break; |
| 239 |
case R106J: OFF(OR106J); break; |
|
| 240 |
case R106Z: OFF(OR106Z); break; |
|
| 230 | 241 |
} |
| 231 | 242 |
} |
| 232 | 243 |
|
| ... | ... | |
| 444 | 455 |
if(buf[3]=='V') if((buf[4]=='U')) {up(R104V);} else {down(R104V);}
|
| 445 | 456 |
if(buf[3]=='J') if((buf[4]=='U')) {up(R104J);} else {down(R104J);}
|
| 446 | 457 |
break; |
| 458 |
case '6': |
|
| 459 |
if(buf[3]=='J') if((buf[4]=='U')) {up(R106J);} else {down(R106J);}
|
|
| 460 |
if(buf[3]=='Z') if((buf[4]=='U')) {up(R106Z);} else {down(R106Z);}
|
|
| 461 |
break; |
|
| 447 | 462 |
case 'a': |
| 448 | 463 |
if((buf[4]=='U')) |
| 449 | 464 |
{//up(R110N);
|
| ... | ... | |
| 515 | 530 |
} |
| 516 | 531 |
else zakmity--; |
| 517 | 532 |
|
| 533 |
// Spajz mikrospinac i svetlo |
|
| 534 |
if(IS108A) {output_high(OS108A); tS108=TIMEOUT_SPAJZ;}
|
|
| 535 |
if((!IS108A)&&(tS108>0)) {output_low(OS108A);} else {output_high(OS108A);}
|
|
| 536 |
|
|
| 518 | 537 |
switch (relay) |
| 519 | 538 |
{
|
| 520 | 539 |
case UP: |