Rev 239 Rev 240
Line 1... Line 1...
1 #include ".\main.h" 1 #include ".\main.h"
2   2  
3 #define LCD_RS PIN_B1 // rizeni registru LCD displeje 3 #define LCD_RS PIN_B1 // rizeni registru LCD displeje
4 #define LCD_E PIN_B0 // enable LCD displeje 4 #define LCD_E PIN_B0 // enable LCD displeje
5 #define LCD_DATA_LSB PIN_C0 // pripojeni LSB bitu datoveho portu LCD displeje (celkem 4 bity vzestupne za sebou) 5 #define LCD_DATA_LSB PIN_C0 // pripojeni LSB bitu datoveho portu LCD displeje (celkem 4 bity vzestupne za sebou)
6 #define zar1 PIN_A3 -  
-   6  
7   7  
8 #bit SPEN=0x18.7 8 #bit SPEN=0x18.7
9 #bit RCIF=0x0C.5 9 #bit RCIF=0x0C.5
10   10  
11 #include "mylcd.c" 11 #include <stdio.h>
12   -  
13 void main() -  
14 { -  
15 char odp[40]; -  
16 int pom,pom2,pom3,odkl,odkl2,maskovadlo,status; -  
17   -  
18 setup_adc_ports(NO_ANALOGS); -  
19 setup_adc(ADC_OFF); -  
20 setup_spi(SPI_SS_DISABLED); -  
21 setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); -  
22 setup_timer_1(T1_DISABLED); -  
23 setup_timer_2(T2_DISABLED,0,1); -  
24 setup_comparator(NC_NC_NC_NC); -  
25 setup_vref(FALSE); -  
26 setup_wdt(WDT_2304MS); -  
27 lcd_init(); 12 #include <string.h>
28   -  
29 while(TRUE) -  
30 { -  
31 restart_wdt(); 13 #include <stdlib.h>
32   14  
33 output_low(PIN_A4) ; -  
34 delay_ms(150); -  
35 output_high(PIN_A4); -  
36 delay_ms(150); -  
37 output_low(PIN_A4) ; -  
38 delay_ms(150); 15 #define DELKA 40
39 output_high(PIN_A4); -  
40 delay_ms(150); -  
41   16  
42 /* -  
43 while(kbhit(MOBIL)) {fgetc(MOBIL); delay_ms(100);} // Preskoc zbytek radku -  
44 fprintf(MOBIL,"AT\r"); //vycti prijate SMS 17 char odp[DELKA];
45 while(fgetc(MOBIL)!=0x0A); // predkoc prvni radek odpovedi -  
46   18  
47 delay_ms(500); -  
48 for(pom=0;pom<80;pom++) odp[pom]=0; -  
49 fprintf(MOBIL,"AT\r"); //vycti prijate SMS -  
50 odp[0]=fgetc(MOBIL); -  
51 odp[1]=fgetc(MOBIL); -  
52 odp[2]=fgetc(MOBIL); -  
53   -  
54 fprintf(VRTULE,"*%s*\n\r",odp); -  
55 fgetc(MOBIL); -  
56 output_low(PIN_A4); 19 int1 check_new_sms()
57 fgetc(MOBIL); -  
58 fgetc(MOBIL); -  
59   20 {
60 delay_ms(1000); -  
61 continue; -  
62 */ -  
63 fprintf(MOBIL,"AT+CMGL=1\r"); //vycti prijate SMS (0=nove;1=vsechny) 21 fprintf(MOBIL,"AT+CMGL=1\r"); //vycti prijate SMS (0=nove;1=vsechny)
64 //SPEN=1; -  
65   -  
66   -  
67 while(fgetc(MOBIL)!=0x0A); // predkoc prvni radek odpovedi 22 while(fgetc(MOBIL)!=0x0A); // predkoc prvni radek odpovedi
68   -  
69 odp[0]=fgetc(MOBIL); // Nacti prvni dva znaky druheho radku odpovedi 23 odp[0]=fgetc(MOBIL); // Nacti prvni dva znaky druheho radku odpovedi
70 odp[1]=fgetc(MOBIL); 24 odp[1]=fgetc(MOBIL);
71 while(fgetc(MOBIL)!=0x0A); // Preskoc zbytek radku 25 while(fgetc(MOBIL)!=0x0A); // Preskoc zbytek radku
72   26  
73 // while(kbhit(MOBIL)) {fgetc(MOBIL); delay_ms(100);} // Preskoc zbytek radku 27 if(odp[0] == 'O' && odp[1] == 'K') return 1;
74 output_high(PIN_A4); 28 else return 0;
75   29 }
76   30  
77 if(odp[0] == 79 && odp[1] ==75) // Je odpoved "OK"? -  
78 { -  
79 lcd_gotoxy(1,1); -  
80 printf(lcd_putc,"\fNeni nova SMS zprava"); -  
81 lcd_gotoxy(1,2); -  
82 printf(lcd_putc,""); -  
83 lcd_gotoxy(1,3); -  
84 printf(lcd_putc,"Zaslete SMS na cislo"); -  
85 lcd_gotoxy(1,4); -  
86 printf(lcd_putc," 736 655 250"); -  
87 delay_ms(5000); -  
88 } -  
89 else 31 read_sms()
90 { 32 {
91 //!!!KAKL for(pom=0;pom<55;pom++) //preskoc nedulezite informace 33 int pom,pom2,pom3,odkl,odkl2,maskovadlo;
92 for(pom=0;pom<54;pom++) //preskoc nedulezite informace 34 for(pom=0;pom<54;pom++) //preskoc nedulezite informace
93 { 35 {
94 fgetc(MOBIL); 36 fgetc(MOBIL);
95 } 37 }
96   38  
Line 170... Line 112...
170 odp[pom+1] = odkl2; //uloz 8my znak vznikly z "prenosu" 112 odp[pom+1] = odkl2; //uloz 8my znak vznikly z "prenosu"
171 maskovadlo = 0; //smaz maskovadlo 113 maskovadlo = 0; //smaz maskovadlo
172 } 114 }
173 } 115 }
174 odp[pom]='\0'; 116 odp[pom]='\0';
-   117 }
175   118  
176 /*lcd_gotoxy(1,3); 119 void read_time()
177 printf(lcd_putc,"%u %u %u %u",odp[0],odp[1],odp[2],odp[3]); */ -  
-   120 {
178 lcd_init(); 121 unsigned int8 n;
179 lcd_gotoxy(1,1); -  
180 printf(lcd_putc,"\fPrijata SMS s textem"); -  
181 lcd_gotoxy(9,3); -  
182 printf(lcd_putc,"%s",odp); -  
183 output_low(PIN_A4) ; -  
184 delay_ms(1000); -  
185 output_high(PIN_A4); -  
186   122  
187 //!!! fprintf(MOBIL,"AT+CMGD=1\r"); //smaz prijatou SMSku -  
188   123  
189 if (odp[0] > 64 && odp[0] < 91 ) 124 fprintf(MOBIL,"AT+CCLK?\r");
-   125 while(fgetc(MOBIL)!='"');
-   126 for(n=0;n<12;n++) //preskoc nedulezite informace
190 { 127 {
191 odp[0] += 32; 128 fgetc(MOBIL);
192 } 129 }
-   130 odp[0]=fgetc(MOBIL);
-   131 odp[1]=fgetc(MOBIL);
-   132 odp[2]=0;
-   133 }
193   134  
194 if (odp[1] > 64 && odp[1] < 91 ) 135 void del_sms()
195 { 136 {
196 odp[1] += 32; 137 fprintf(MOBIL,"AT+CMGD=1\r"); //smaz prijatou SMSku
197 } 138 }
198   139  
-   140 void main()
-   141 {
-   142 setup_adc_ports(NO_ANALOGS);
-   143 setup_adc(ADC_OFF);
-   144 setup_spi(SPI_SS_DISABLED);
-   145 setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
-   146 setup_timer_1(T1_DISABLED);
199 if (odp[2] > 64 && odp[2] < 91 ) 147 setup_timer_2(T2_DIV_BY_4,255,1);
200 { 148 setup_ccp1(CCP_PWM);
201 odp[2] += 32; 149 setup_ccp2(CCP_PWM);
-   150 setup_comparator(NC_NC_NC_NC);
202 } 151 setup_vref(FALSE);
-   152 setup_wdt(WDT_2304MS);
203   153  
204 if (odp[3] > 64 && odp[3] < 91 ) -  
205 { 154 set_pwm1_duty(0);
206 odp[3] += 32; 155 set_pwm2_duty(0);
207 } -  
208   156  
209 lcd_gotoxy(1,1); 157 while(TRUE)
210 printf(lcd_putc,"\f Odstraneni velkych"); -  
211 lcd_gotoxy(1,2); 158 {
212 printf(lcd_putc," pismen"); -  
213 lcd_gotoxy(9,4); 159 int status;
214 printf(lcd_putc,"%s",odp); -  
215 output_low(PIN_A4) ; 160 char *ptr;
216 delay_ms(1000); 161 int time;
217 output_high(PIN_A4); -  
218   162  
-   163 restart_wdt();
219   164  
-   165 output_low(PIN_A4) ;
220 //!!!KAKL 166 delay_ms(150);
221 fprintf(VRTULE,"%s",odp); 167 output_high(PIN_A4);
-   168 delay_ms(150);
-   169 output_low(PIN_A4) ;
-   170 delay_ms(150);
-   171 output_high(PIN_A4);
-   172 delay_ms(150);
222   173  
223   174  
224 if (odp[0] == 122 && odp[1] == 97 && odp[2] == 112 && odp[3] == 49) //odp=="zap1" -  
225 { 175 set_pwm1_duty(500);
226 status=1; 176 set_pwm2_duty(500);
-   177  
227 } 178 fprintf(VRTULE,"ABABABABAB");
228   179  
-   180 Delay_ms(5000);
-   181  
-   182  
-   183 /* if(check_new_sms()) // Je odpoved "OK"?
-   184 {
-   185 // printf(lcd_putc,"736 655 250");
-   186 delay_ms(1000);
-   187 }
-   188 else
-   189 {
-   190 read_sms();
-   191  
-   192 if (odp[0] == 'A' || odp[0] == 'a')
-   193 {
-   194 set_pwm1_duty(500);
-   195 set_pwm2_duty(500);
-   196 Delay_ms(5000);
-   197 fprintf(VRTULE,"ABABABABAB");
-   198 Delay_ms(20000);
-   199 set_pwm1_duty(0);
-   200 set_pwm2_duty(0);
-   201 }
-   202  
229 if (odp[0] == 118 && odp[1] == 121 && odp[2] == 112 && odp[3]== 49) //odp=="vyp1" 203 if (odp[0] == 118 && odp[1] == 121 && odp[2] == 112 && odp[3]== 49)
230 { 204 {
231 status=2; 205 fprintf(VRTULE,"");
232 } 206 }
233   207  
234 if (odp[0] == 97 && odp[1] == 104 && odp[2] == 111 && odp[3]== 106) //odp=="ahoj" 208 if (odp[0] == 97 && odp[1] == 104 && odp[2] == 111 && odp[3]== 106)
235 { 209 {
236 status=3; 210 fprintf(VRTULE,"");
237 } 211 }
238   212 }
239 switch (status) 213 /* read_time();
-   214 time=strtoul(odp,&ptr,10);
-   215 if((time >= 30 && time <= 35) || (time >= 0 && time <= 5))
240 { 216 {
241   -  
242 case 1: output_low(zar1); 217 set_pwm1_duty(500);
243 printf(lcd_putc,"\f"); -  
244 lcd_gotoxy(1,2); -  
245 printf(lcd_putc," Zapnuto zarizeni 1"); -  
246 break; -  
247   -  
248 case 2: output_high(zar1); -  
249 printf(lcd_putc,"\f"); -  
250 lcd_gotoxy(1,2); -  
251 printf(lcd_putc," Vypnuto zarizeni 1"); -  
252 break; -  
253   -  
254 case 3: printf(lcd_putc,"\f"); -  
255 lcd_gotoxy(1,2); -  
256 printf(lcd_putc," Preji hezky den!"); -  
257 break; -  
258   -  
259 default: printf(lcd_putc,"\f"); -  
260 lcd_gotoxy(1,2); -  
261 printf(lcd_putc," Prikaz nebyl"); -  
262 lcd_gotoxy(1,3); 218 set_pwm2_duty(500);
263 printf(lcd_putc," rozeznan"); -  
264 break; -  
265 } 219 }
-   220 else
-   221 {
-   222 set_pwm1_duty(0);
266 delay_ms(1000); 223 set_pwm2_duty(0);
267 } 224 }*/
268   225  
-   226 delay_ms(1000);
269 } 227 }
270 } 228 }