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  
1748 kakl 22 #define S105AN input(PIN_A0) // Kuchyne hlavni svetlo severni vypinac
23 #define R110NJU input(PIN_A1) // Roleta koupelna
24 #define R110NJD input(PIN_A2)
25 #define S104AZ input(PIN_A3) // Svetlo laborator vypinac u dveri
26 #define R104VZU input(PIN_A4) // Roleta laborator vychod
27 #define R104VZD input(PIN_A5)
28 #define R104JZU input(PIN_A6) // Roleta laborator jih
29 #define R104JZD input(PIN_A7)
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
36 //#define S input(PIN_B5) // F
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  
1748 kakl 51 #define S101AN input(PIN_D0) // Hlavni svetlo bunecka severni vypinac bliz u dveri
52 #define S101AJ input(PIN_D1) // Hlavni svetlo bunecka jizni vypinac
53 #define S105VV input(PIN_D2) // Vypinac nad chlebarnou
54 #define S105NZ input(PIN_D3) // Svetlo kuchyne sever vypinac zapadni
55 #define S105ZZ input(PIN_D4) // Svetlo kuchyne zapad vypinac zapadni
56 #define S102AN input(PIN_D5) // Vypinac chodba dole u schodu
57 #define S110AN input(PIN_D6) // Vypinac koupelna sever
58 #define S108AV input(PIN_D7) // Dvere do spajzu
1746 kakl 59  
2497 kakl 60 //#define S input(PIN_E0) // A
61 //#define S input(PIN_E1) // B
62 //#define S input(PIN_E2) // C
63 //#define S input(PIN_E3) // D
64 //#define S input(PIN_E4) // E
65 //#define S input(PIN_E5) // F
66 //#define S input(PIN_E6) // G
67 //#define S input(PIN_E7) // H
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
74 #define S107AJ input(PIN_F5) // F Svetlo satna vypinac u trucovny
75 #define S109AN input(PIN_F6) // G Svetlo technologicka mistnost vypinac do prujezdu
76 #define S106AN input(PIN_F7) // H Hlavni svetlo trucovna vypinac u dveri do satny
1746 kakl 77  
2497 kakl 78  
79 /*
1746 kakl 80 #define PIN_G0 31792
81 #define PIN_G1 31793
82 #define PIN_G2 31794
83 #define PIN_G3 31795
84 #define PIN_G4 31796
85 #define PIN_G5 31797
86  
87 #define PIN_H0 31800
88 #define PIN_H1 31801
89 #define PIN_H2 31802
90 #define PIN_H3 31803
91 #define PIN_H4 31804
92 #define PIN_H5 31805
93 #define PIN_H6 31806
94 #define PIN_H7 31807
95  
96 #define PIN_J0 31808
97 #define PIN_J1 31809
98 #define PIN_J2 31810
99 #define PIN_J3 31811
100 #define PIN_J4 31812
101 #define PIN_J5 31813
102 #define PIN_J6 31814
103 #define PIN_J7 31815
104 */
105  
106 #define LED1 PIN_J7
107 #define LED2 PIN_J6
108  
1750 kakl 109 #define ON(port) output_low(port);
110 #define OFF(port) output_high(port);
111  
1748 kakl 112 int1 s105AN; // Predchozi stav vypinacu
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;
133 int1 s110AN;
134 int1 s108AV;
2497 kakl 135 int1 r106JVU;
136 int1 r106JVD;
137 int1 r106ZVU;
138 int1 r106ZVD;
139 int1 s106AV;
140 int1 s106AN;
141 int1 s107AJ;
142 int1 s109AN;
1746 kakl 143  
1747 kakl 144 #define send(s) \
145 {\
146 printf("%s\r\n",#s);\
147 output_toggle(LED1);\
148 delay_ms(100);\
149 }
150  
1746 kakl 151 void main()
152 {
153 setup_adc_ports(NO_ANALOGS|VSS_VDD);
154 setup_adc(ADC_CLOCK_DIV_2);
155 setup_psp(PSP_DISABLED);
156 setup_spi(SPI_SS_DISABLED);
157 setup_wdt(WDT_OFF);
158 setup_timer_0(RTCC_INTERNAL);
159 setup_timer_1(T1_DISABLED);
160 setup_timer_2(T2_DISABLED,0,1);
161 setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
162 setup_ccp1(CCP_OFF);
163 setup_comparator(NC_NC_NC_NC);
164 setup_vref(FALSE);
165  
1750 kakl 166 OFF(OS101A);
167  
2497 kakl 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  
1748 kakl 182 s105AN=S105AN; // Poznamenej vychozi stav vypinacu
183 r110NJU=R110NJU;
184 r110NJD=R110NJD;
185 s104AZ=S104AZ;
186 r104VZU=R104VZU;
187 r104VZD=R104VZD;
188 r104JZU=R104JZU;
189 r104JZD=R104JZD;
190 s103JZ=S103JZ;
191 s103JN=S103JN;
192 s103JV=S103JV;
193 r103VZU=R103VZU;
194 r103VZD=R103VZD;
195 s107AN=S107AN;
196 s109AJ=S109AJ;
197 s101AN=S101AN;
198 s101AJ=S101AJ;
199 s105VV=S105VV;
200 s105NZ=S105NZ;
201 s105ZZ=S105ZZ;
202 s102AN=S102AN;
203 s110AN=S110AN;
204 s108AV=S108AV;
2497 kakl 205 r106JVU=R106JVU;
206 r106JVD=R106JVD;
207 r106ZVU=R106ZVU;
208 r106ZVD=R106ZVD;
209 s106AV=S106AV;
210 s106AN=S106AN;
211 s107AJ=S107AJ;
212 s109AN=S109AN;
1746 kakl 213  
214 while(TRUE)
215 {
1748 kakl 216 if(s105AN!=S105AN) {s105AN=S105AN; send(S15A);}
217 if(r110NJU!=R110NJU) {r110NJU=R110NJU; send(R1aNU);}
218 if(r110NJD!=R110NJD) {r110NJD=R110NJD; send(R1aND);}
219  
220 if(!S105VV) {output_low(OS105V);} else {output_high(OS105V);}
221 if(!S105NZ) {output_low(OS105N);} else {output_high(OS105N);}
222 if(s105ZZ!=S105ZZ) {s105ZZ=S105ZZ; send(S15Z);}
1746 kakl 223  
1748 kakl 224 if(s104AZ!=S104AZ) {s104AZ=S104AZ; send(S14A);}
225 if(r104VZU!=R104VZU) {r104VZU=R104VZU; send(R14VU);}
226 if(r104VZD!=R104VZD) {r104VZD=R104VZD; send(R14VD);}
227 if(r104JZU!=R104JZU) {r104JZU=R104JZU; send(R14JU);}
228 if(r104JZD!=R104JZD) {r104JZD=R104JZD; send(R14JD);}
1746 kakl 229  
1748 kakl 230 if(s103JZ!=S103JZ) {s103JZ=S103JZ; send(S13A);}
231 if(s103JN!=S103JN) {s103JN=S103JN; send(S13A);}
232 if(s103JV!=S103JV) {s103JV=S103JV; send(S13A);}
233 if(r103VZU!=R103VZU) {r103VZU=R103VZU; send(R13VU);}
234 if(r103VZD!=R103VZD) {r103VZD=R103VZD; send(R13VD);}
235  
236 if(s107AN!=S107AN) {s107AN=S107AN; send(S17A);}
237 if(s109AJ!=S109AJ) {s109AJ=S109AJ; send(S19A);}
1746 kakl 238  
1750 kakl 239 if(s101AN!=S101AN) {s101AN=S101AN; output_toggle(OS101A); delay_ms(100);}
240 if(s101AJ!=S101AJ) {s101AJ=S101AJ; output_toggle(OS101A); delay_ms(100);}
1746 kakl 241  
1748 kakl 242 if(s102AN!=S102AN) {s102AN=S102AN; send(S12A);}
243 if(s110AN!=S110AN) {s110AN=S110AN; send(S1aA);}
244 if(s108AV!=S108AV) {s108AV=S108AV; send(S18A);}
1750 kakl 245  
2497 kakl 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  
1750 kakl 255 if(get_timer0()>65000) {output_toggle(LED2); set_timer0(0);}
1746 kakl 256 }
257 }