Rev 1750 Rev 2497
-   1 /*
-   2 Ovladani domu rozvadec 1. n.p. pod schodama
-   3  
-   4 Syntaxe prikazu:
-   5  
-   6 <Roleta/Svetlo><#patro><#mistnost><Nord/Jih/Vychod/Zapad/A/B><Up/Down>
-   7 R2aNU - roleta, 2. n.p., mistnost 10, sever, nahoru
-   8 S12A - svetlo, 1. n.p., mistnost 2, prostredni
-   9  
-   10 Rozmisteni desek:
-   11  
-   12 [IN B] [IN D]
-   13 [CPU]
-   14 [IN A] [CAN] [IN E] [IN F]
-   15
-   16 */
-   17  
1 #include "main.h" 18 #include "main.h"
2   19  
3 #case 20 #case
4   21  
5 #define S105AN input(PIN_A0) // Kuchyne hlavni svetlo severni vypinac 22 #define S105AN input(PIN_A0) // Kuchyne hlavni svetlo severni vypinac
6 #define R110NJU input(PIN_A1) // Roleta koupelna 23 #define R110NJU input(PIN_A1) // Roleta koupelna
7 #define R110NJD input(PIN_A2) 24 #define R110NJD input(PIN_A2)
8 #define S104AZ input(PIN_A3) // Svetlo laborator vypinac u dveri 25 #define S104AZ input(PIN_A3) // Svetlo laborator vypinac u dveri
9 #define R104VZU input(PIN_A4) // Roleta laborator vychod 26 #define R104VZU input(PIN_A4) // Roleta laborator vychod
10 #define R104VZD input(PIN_A5) 27 #define R104VZD input(PIN_A5)
11 #define R104JZU input(PIN_A6) // Roleta laborator jih 28 #define R104JZU input(PIN_A6) // Roleta laborator jih
12 #define R104JZD input(PIN_A7) 29 #define R104JZD input(PIN_A7)
13   30  
14 #define S103JZ input(PIN_B0) // Svetlo loznice jih vypinac u dveri 31 #define S103JZ input(PIN_B0) // A Svetlo loznice jih vypinac u dveri
15 #define S103JN input(PIN_B1) // -"- vypinac KAKL 32 #define S103JN input(PIN_B1) // B -"- vypinac KAKL
16 #define S103JV input(PIN_B2) // -"- vypinac mama 33 #define S103JV input(PIN_B2) // C -"- vypinac mama
17 #define R103VZU input(PIN_B3) // Roleta loznice vypinac u dveri 34 #define R103VZU input(PIN_B3) // D Roleta loznice vypinac u dveri
18 #define R103VZD input(PIN_B4) 35 #define R103VZD input(PIN_B4) // E
19 #define S106AV input(PIN_B5) // Hlavni svetlo trucovna vypinac u dveri do kuchyne 36 //#define S input(PIN_B5) // F
20 #define S107AN input(PIN_B6) // Svetlo satna vypinac do chodby 37 #define S107AN input(PIN_B6) // G Svetlo satna vypinac do chodby
21 #define S109AJ input(PIN_B7) // Svetlo tech. mistnost vypinac do chodby 38 #define S109AJ input(PIN_B7) // H Svetlo tech. mistnost vypinac do chodby
22   39  
23 #define OS101A PIN_C0 // Spinac svetla v bunecce prizemi 40 #define OS101A PIN_C0 // Spinac svetla v bunecce prizemi
24 #define OS105V PIN_C1 // Svetlo nad chlebarnou 41 #define OS105V PIN_C1 // Svetlo nad chlebarnou
25 #define OS105N PIN_C2 // Severni svetlo kuchyne 42 #define OS105N PIN_C2 // Severni svetlo kuchyne
26   43  
27 //#define PIN_C3 31763 44 //#define PIN_C3 31763
28 //#define PIN_C4 31764 45 //#define PIN_C4 31764
29 //#define PIN_C5 31765 46 //#define PIN_C5 31765
30   47  
31 //#define PIN_C6 31766 //TX 48 //#define PIN_C6 31766 //TX
32 //#define PIN_C7 31767 //RX 49 //#define PIN_C7 31767 //RX
33   50  
34 #define S101AN input(PIN_D0) // Hlavni svetlo bunecka severni vypinac bliz u dveri 51 #define S101AN input(PIN_D0) // Hlavni svetlo bunecka severni vypinac bliz u dveri
35 #define S101AJ input(PIN_D1) // Hlavni svetlo bunecka jizni vypinac 52 #define S101AJ input(PIN_D1) // Hlavni svetlo bunecka jizni vypinac
36 #define S105VV input(PIN_D2) // Vypinac nad chlebarnou 53 #define S105VV input(PIN_D2) // Vypinac nad chlebarnou
37 #define S105NZ input(PIN_D3) // Svetlo kuchyne sever vypinac zapadni 54 #define S105NZ input(PIN_D3) // Svetlo kuchyne sever vypinac zapadni
38 #define S105ZZ input(PIN_D4) // Svetlo kuchyne zapad vypinac zapadni 55 #define S105ZZ input(PIN_D4) // Svetlo kuchyne zapad vypinac zapadni
39 #define S102AN input(PIN_D5) // Vypinac chodba dole u schodu 56 #define S102AN input(PIN_D5) // Vypinac chodba dole u schodu
40 #define S110AN input(PIN_D6) // Vypinac koupelna sever 57 #define S110AN input(PIN_D6) // Vypinac koupelna sever
41 #define S108AV input(PIN_D7) // Dvere do spajzu 58 #define S108AV input(PIN_D7) // Dvere do spajzu
42   59  
43 /* -  
44 #define PIN_E0 31776 60 //#define S input(PIN_E0) // A
45 #define PIN_E1 31777 61 //#define S input(PIN_E1) // B
46 #define PIN_E2 31778 62 //#define S input(PIN_E2) // C
47 #define PIN_E3 31779 63 //#define S input(PIN_E3) // D
48 #define PIN_E4 31780 64 //#define S input(PIN_E4) // E
49 #define PIN_E5 31781 65 //#define S input(PIN_E5) // F
50 #define PIN_E6 31782 66 //#define S input(PIN_E6) // G
51 #define PIN_E7 31783 67 //#define S input(PIN_E7) // H
52   68  
53 #define PIN_F0 31784 69 #define S106AV input(PIN_F0) // A Hlavni svetlo trucovna vypinac u dveri do kuchyne
54 #define PIN_F1 31785 70 #define R106JVD input(PIN_F1) // B Roleta trucovna jih vypinac u dveri do kuchyne
55 #define PIN_F2 31786 71 #define R106JVU input(PIN_F2) // C
56 #define PIN_F3 31787 72 #define R106ZVD input(PIN_F3) // D Roleta trucovna zapad vypinac u dveri do kuchyne
57 #define PIN_F4 31788 73 #define R106ZVU input(PIN_F4) // E
58 #define PIN_F5 31789 74 #define S107AJ input(PIN_F5) // F Svetlo satna vypinac u trucovny
59 #define PIN_F6 31790 75 #define S109AN input(PIN_F6) // G Svetlo technologicka mistnost vypinac do prujezdu
60 #define PIN_F7 31791 76 #define S106AN input(PIN_F7) // H Hlavni svetlo trucovna vypinac u dveri do satny
61   77  
-   78  
-   79 /*
62 #define PIN_G0 31792 80 #define PIN_G0 31792
63 #define PIN_G1 31793 81 #define PIN_G1 31793
64 #define PIN_G2 31794 82 #define PIN_G2 31794
65 #define PIN_G3 31795 83 #define PIN_G3 31795
66 #define PIN_G4 31796 84 #define PIN_G4 31796
67 #define PIN_G5 31797 85 #define PIN_G5 31797
68   86  
69 #define PIN_H0 31800 87 #define PIN_H0 31800
70 #define PIN_H1 31801 88 #define PIN_H1 31801
71 #define PIN_H2 31802 89 #define PIN_H2 31802
72 #define PIN_H3 31803 90 #define PIN_H3 31803
73 #define PIN_H4 31804 91 #define PIN_H4 31804
74 #define PIN_H5 31805 92 #define PIN_H5 31805
75 #define PIN_H6 31806 93 #define PIN_H6 31806
76 #define PIN_H7 31807 94 #define PIN_H7 31807
77   95  
78 #define PIN_J0 31808 96 #define PIN_J0 31808
79 #define PIN_J1 31809 97 #define PIN_J1 31809
80 #define PIN_J2 31810 98 #define PIN_J2 31810
81 #define PIN_J3 31811 99 #define PIN_J3 31811
82 #define PIN_J4 31812 100 #define PIN_J4 31812
83 #define PIN_J5 31813 101 #define PIN_J5 31813
84 #define PIN_J6 31814 102 #define PIN_J6 31814
85 #define PIN_J7 31815 103 #define PIN_J7 31815
86 */ 104 */
87   105  
88 #define LED1 PIN_J7 106 #define LED1 PIN_J7
89 #define LED2 PIN_J6 107 #define LED2 PIN_J6
90   108  
91 #define ON(port) output_low(port); 109 #define ON(port) output_low(port);
92 #define OFF(port) output_high(port); 110 #define OFF(port) output_high(port);
93   111  
94 int1 s105AN; // Predchozi stav vypinacu 112 int1 s105AN; // Predchozi stav vypinacu
95 int1 r110NJU; 113 int1 r110NJU;
96 int1 r110NJD; 114 int1 r110NJD;
97 int1 s104AZ; 115 int1 s104AZ;
98 int1 r104VZU; 116 int1 r104VZU;
99 int1 r104VZD; 117 int1 r104VZD;
100 int1 r104JZU; 118 int1 r104JZU;
101 int1 r104JZD; 119 int1 r104JZD;
102 int1 s103JZ; 120 int1 s103JZ;
103 int1 s103JN; 121 int1 s103JN;
104 int1 s103JV; 122 int1 s103JV;
105 int1 r103VZU; 123 int1 r103VZU;
106 int1 r103VZD; 124 int1 r103VZD;
107 int1 s106AV; -  
108 int1 s107AN; 125 int1 s107AN;
109 int1 s109AJ; 126 int1 s109AJ;
110 int1 s101AN; 127 int1 s101AN;
111 int1 s101AJ; 128 int1 s101AJ;
112 int1 s105VV; 129 int1 s105VV;
113 int1 s105NZ; 130 int1 s105NZ;
114 int1 s105ZZ; 131 int1 s105ZZ;
115 int1 s102AN; 132 int1 s102AN;
116 int1 s110AN; 133 int1 s110AN;
117 int1 s108AV; 134 int1 s108AV;
-   135 int1 r106JVU;
-   136 int1 r106JVD;
-   137 int1 r106ZVU;
-   138 int1 r106ZVD;
-   139 int1 s106AV;
-   140 int1 s106AN;
-   141 int1 s107AJ;
-   142 int1 s109AN;
118   143  
119 #define send(s) \ 144 #define send(s) \
120 {\ 145 {\
121 printf("%s\r\n",#s);\ 146 printf("%s\r\n",#s);\
122 output_toggle(LED1);\ 147 output_toggle(LED1);\
123 delay_ms(100);\ 148 delay_ms(100);\
124 } 149 }
125   150  
126 void main() 151 void main()
127 { 152 {
128   -  
129 setup_adc_ports(NO_ANALOGS|VSS_VDD); 153 setup_adc_ports(NO_ANALOGS|VSS_VDD);
130 setup_adc(ADC_CLOCK_DIV_2); 154 setup_adc(ADC_CLOCK_DIV_2);
131 setup_psp(PSP_DISABLED); 155 setup_psp(PSP_DISABLED);
132 setup_spi(SPI_SS_DISABLED); 156 setup_spi(SPI_SS_DISABLED);
133 setup_wdt(WDT_OFF); 157 setup_wdt(WDT_OFF);
134 setup_timer_0(RTCC_INTERNAL); 158 setup_timer_0(RTCC_INTERNAL);
135 setup_timer_1(T1_DISABLED); 159 setup_timer_1(T1_DISABLED);
136 setup_timer_2(T2_DISABLED,0,1); 160 setup_timer_2(T2_DISABLED,0,1);
137 setup_timer_3(T3_DISABLED|T3_DIV_BY_1); 161 setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
138 setup_ccp1(CCP_OFF); 162 setup_ccp1(CCP_OFF);
139 setup_comparator(NC_NC_NC_NC); 163 setup_comparator(NC_NC_NC_NC);
140 setup_vref(FALSE); 164 setup_vref(FALSE);
141   165  
142 OFF(OS101A); 166 OFF(OS101A);
143   167  
-   168 {
-   169 int n;
-   170
-   171 for(n=0;n<10;n++)
-   172 {
-   173 output_low(LED1); // Indikace restartu (pockame na nabiti kondenzatoru ve vstupnich obvodech)
-   174 delay_ms(100);
-   175 output_high(LED1);
-   176 delay_ms(100);
-   177 restart_wdt();
-   178 }
-   179 }
-   180  
-   181  
144 s105AN=S105AN; // Poznamenej vychozi stav vypinacu 182 s105AN=S105AN; // Poznamenej vychozi stav vypinacu
145 r110NJU=R110NJU; 183 r110NJU=R110NJU;
146 r110NJD=R110NJD; 184 r110NJD=R110NJD;
147 s104AZ=S104AZ; 185 s104AZ=S104AZ;
148 r104VZU=R104VZU; 186 r104VZU=R104VZU;
149 r104VZD=R104VZD; 187 r104VZD=R104VZD;
150 r104JZU=R104JZU; 188 r104JZU=R104JZU;
151 r104JZD=R104JZD; 189 r104JZD=R104JZD;
152 s103JZ=S103JZ; 190 s103JZ=S103JZ;
153 s103JN=S103JN; 191 s103JN=S103JN;
154 s103JV=S103JV; 192 s103JV=S103JV;
155 r103VZU=R103VZU; 193 r103VZU=R103VZU;
156 r103VZD=R103VZD; 194 r103VZD=R103VZD;
157 s106AV=S106AV; -  
158 s107AN=S107AN; 195 s107AN=S107AN;
159 s109AJ=S109AJ; 196 s109AJ=S109AJ;
160 s101AN=S101AN; 197 s101AN=S101AN;
161 s101AJ=S101AJ; 198 s101AJ=S101AJ;
162 s105VV=S105VV; 199 s105VV=S105VV;
163 s105NZ=S105NZ; 200 s105NZ=S105NZ;
164 s105ZZ=S105ZZ; 201 s105ZZ=S105ZZ;
165 s102AN=S102AN; 202 s102AN=S102AN;
166 s110AN=S110AN; 203 s110AN=S110AN;
167 s108AV=S108AV; 204 s108AV=S108AV;
-   205 r106JVU=R106JVU;
-   206 r106JVD=R106JVD;
-   207 r106ZVU=R106ZVU;
-   208 r106ZVD=R106ZVD;
-   209 s106AV=S106AV;
-   210 s106AN=S106AN;
-   211 s107AJ=S107AJ;
-   212 s109AN=S109AN;
168   213  
169 while(TRUE) 214 while(TRUE)
170 { 215 {
171 if(s105AN!=S105AN) {s105AN=S105AN; send(S15A);} 216 if(s105AN!=S105AN) {s105AN=S105AN; send(S15A);}
172 if(r110NJU!=R110NJU) {r110NJU=R110NJU; send(R1aNU);} 217 if(r110NJU!=R110NJU) {r110NJU=R110NJU; send(R1aNU);}
173 if(r110NJD!=R110NJD) {r110NJD=R110NJD; send(R1aND);} 218 if(r110NJD!=R110NJD) {r110NJD=R110NJD; send(R1aND);}
174   219  
175 if(!S105VV) {output_low(OS105V);} else {output_high(OS105V);} 220 if(!S105VV) {output_low(OS105V);} else {output_high(OS105V);}
176 if(!S105NZ) {output_low(OS105N);} else {output_high(OS105N);} 221 if(!S105NZ) {output_low(OS105N);} else {output_high(OS105N);}
177 if(s105ZZ!=S105ZZ) {s105ZZ=S105ZZ; send(S15Z);} 222 if(s105ZZ!=S105ZZ) {s105ZZ=S105ZZ; send(S15Z);}
178 223
179 if(s104AZ!=S104AZ) {s104AZ=S104AZ; send(S14A);} 224 if(s104AZ!=S104AZ) {s104AZ=S104AZ; send(S14A);}
180 if(r104VZU!=R104VZU) {r104VZU=R104VZU; send(R14VU);} 225 if(r104VZU!=R104VZU) {r104VZU=R104VZU; send(R14VU);}
181 if(r104VZD!=R104VZD) {r104VZD=R104VZD; send(R14VD);} 226 if(r104VZD!=R104VZD) {r104VZD=R104VZD; send(R14VD);}
182 if(r104JZU!=R104JZU) {r104JZU=R104JZU; send(R14JU);} 227 if(r104JZU!=R104JZU) {r104JZU=R104JZU; send(R14JU);}
183 if(r104JZD!=R104JZD) {r104JZD=R104JZD; send(R14JD);} 228 if(r104JZD!=R104JZD) {r104JZD=R104JZD; send(R14JD);}
184 229
185 if(s103JZ!=S103JZ) {s103JZ=S103JZ; send(S13A);} 230 if(s103JZ!=S103JZ) {s103JZ=S103JZ; send(S13A);}
186 if(s103JN!=S103JN) {s103JN=S103JN; send(S13A);} 231 if(s103JN!=S103JN) {s103JN=S103JN; send(S13A);}
187 if(s103JV!=S103JV) {s103JV=S103JV; send(S13A);} 232 if(s103JV!=S103JV) {s103JV=S103JV; send(S13A);}
188 if(r103VZU!=R103VZU) {r103VZU=R103VZU; send(R13VU);} 233 if(r103VZU!=R103VZU) {r103VZU=R103VZU; send(R13VU);}
189 if(r103VZD!=R103VZD) {r103VZD=R103VZD; send(R13VD);} 234 if(r103VZD!=R103VZD) {r103VZD=R103VZD; send(R13VD);}
190 235
191 if(s106AV!=S106AV) {s106AV=S106AV; send(S16A);} -  
192 if(s107AN!=S107AN) {s107AN=S107AN; send(S17A);} 236 if(s107AN!=S107AN) {s107AN=S107AN; send(S17A);}
193 if(s109AJ!=S109AJ) {s109AJ=S109AJ; send(S19A);} 237 if(s109AJ!=S109AJ) {s109AJ=S109AJ; send(S19A);}
194 238
195 if(s101AN!=S101AN) {s101AN=S101AN; output_toggle(OS101A); delay_ms(100);} 239 if(s101AN!=S101AN) {s101AN=S101AN; output_toggle(OS101A); delay_ms(100);}
196 if(s101AJ!=S101AJ) {s101AJ=S101AJ; output_toggle(OS101A); delay_ms(100);} 240 if(s101AJ!=S101AJ) {s101AJ=S101AJ; output_toggle(OS101A); delay_ms(100);}
197 241
198 if(s102AN!=S102AN) {s102AN=S102AN; send(S12A);} 242 if(s102AN!=S102AN) {s102AN=S102AN; send(S12A);}
199 if(s110AN!=S110AN) {s110AN=S110AN; send(S1aA);} 243 if(s110AN!=S110AN) {s110AN=S110AN; send(S1aA);}
200 if(s108AV!=S108AV) {s108AV=S108AV; send(S18A);} 244 if(s108AV!=S108AV) {s108AV=S108AV; send(S18A);}
201   245  
-   246 if(r106JVU!=R106JVU) {r106JVU=R106JVU; send(R16JU);}
-   247 if(r106JVD!=R106JVD) {r106JVD=R106JVD; send(R16JD);}
-   248 if(r106ZVU!=R106ZVU) {r106ZVU=R106ZVU; send(R16ZU);}
-   249 if(r106ZVD!=R106ZVD) {r106ZVD=R106ZVD; send(R16ZD);}
-   250 if(s106AV!=S106AV) {s106AV=S106AV; send(S16A);}
-   251 if(s106AN!=S106AN) {s106AN=S106AN; send(S16A);}
-   252 if(s107AJ!=S107AJ) {s107AJ=S107AJ; send(S17A);}
-   253 if(s109AN!=S109AN) {s109AN=S109AN; send(S19A);}
-   254  
202 if(get_timer0()>65000) {output_toggle(LED2); set_timer0(0);} 255 if(get_timer0()>65000) {output_toggle(LED2); set_timer0(0);}
203 } 256 }
204 } 257 }