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