Rev 223 Rev 238
Line 3... Line 3...
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 #define zar1 PIN_A3
7   7  
-   8 #bit SPEN=0x18.7
-   9 #bit RCIF=0x0C.5
-   10  
8 #include "mylcd.c" 11 #include "mylcd.c"
9   12  
10 void main() 13 void main()
11 { 14 {
12 char odp[96]; 15 char odp[96];
13 int pom,pom2,pom3,odkl,odkl2,maskovadlo,status; 16 int pom,pom2,pom3,odkl,odkl2,maskovadlo,status;
14   17  
15 setup_adc_ports(NO_ANALOGS); 18 setup_adc_ports(NO_ANALOGS);
16 setup_adc(ADC_OFF); 19 setup_adc(ADC_OFF);
17 setup_psp(PSP_DISABLED); -  
18 setup_spi(SPI_SS_DISABLED); 20 setup_spi(SPI_SS_DISABLED);
19 setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); 21 setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
20 setup_timer_1(T1_DISABLED); 22 setup_timer_1(T1_DISABLED);
21 setup_timer_2(T2_DISABLED,0,1); 23 setup_timer_2(T2_DISABLED,0,1);
22 setup_comparator(NC_NC_NC_NC); 24 setup_comparator(NC_NC_NC_NC);
Line 48... Line 50...
48 output_low(PIN_A4) ; 50 output_low(PIN_A4) ;
49 delay_ms(150); 51 delay_ms(150);
50 output_high(PIN_A4); 52 output_high(PIN_A4);
51 delay_ms(150); 53 delay_ms(150);
52 54
-   55 /*
-   56 while(kbhit(MOBIL)) {fgetc(MOBIL); delay_ms(100);} // Preskoc zbytek radku
53 printf("AT+CMGL=0\r"); //vycti prijate SMS 57 fprintf(MOBIL,"AT\r"); //vycti prijate SMS
-   58 while(fgetc(MOBIL)!=0x0A); // predkoc prvni radek odpovedi
54 59  
55 60 delay_ms(500);
56 gets(odp); //uloz odpoved prikazu do odp 61 for(pom=0;pom<80;pom++) odp[pom]=0;
57 getc(); //preskoc 0A 62 fprintf(MOBIL,"AT\r"); //vycti prijate SMS
-   63 odp[0]=fgetc(MOBIL);
-   64 odp[1]=fgetc(MOBIL);
-   65 odp[2]=fgetc(MOBIL);
-   66  
58 getc(); //preskoc 0D 67 fprintf(VRTULE,"*%s*\n\r",odp);
-   68 fgetc(MOBIL);
-   69 output_low(PIN_A4);
-   70 fgetc(MOBIL);
-   71 fgetc(MOBIL);
-   72  
-   73 delay_ms(1000);
-   74 continue;
-   75 */
59 gets(odp); //uloz pocatek odpovedi do odp 76 fprintf(MOBIL,"AT+CMGL=1\r"); //vycti prijate SMS (0=nove;1=vsechny)
-   77 //SPEN=1;
60 78
61 79
-   80 while(fgetc(MOBIL)!=0x0A); // predkoc prvni radek odpovedi
-   81  
-   82 odp[0]=fgetc(MOBIL); // Nacti prvni dva znaky druheho radku odpovedi
-   83 odp[1]=fgetc(MOBIL);
-   84 while(fgetc(MOBIL)!=0x0A); // Preskoc zbytek radku
-   85  
-   86 while(kbhit(MOBIL)) {fgetc(MOBIL); delay_ms(100);} // Preskoc zbytek radku
-   87 output_high(PIN_A4) ;
-   88  
-   89  
62 if(odp[0] == 79 && odp[1] ==75) 90 if(odp[0] == 79 && odp[1] ==75) // Je odpoved "OK"?
63 { 91 {
64 lcd_gotoxy(1,1); 92 lcd_gotoxy(1,1);
65 printf(lcd_putc,"\fNeni nova SMS zprava"); 93 printf(lcd_putc,"\fNeni nova SMS zprava");
66 lcd_gotoxy(1,2); 94 lcd_gotoxy(1,2);
67 printf(lcd_putc,""); 95 printf(lcd_putc,"");
68 lcd_gotoxy(1,3); 96 lcd_gotoxy(1,3);
69 printf(lcd_putc,"Zaslete SMS na cislo"); 97 printf(lcd_putc,"Zaslete SMS na cislo");
70 lcd_gotoxy(1,4); 98 lcd_gotoxy(1,4);
71 printf(lcd_putc," 736 655 250"); 99 printf(lcd_putc," 736 655 250");
72 delay_ms(5000); 100 delay_ms(5000);
-   101 }
73 }else 102 else
74 { 103 {
75 -  
-   104 //!!!KAKL for(pom=0;pom<55;pom++) //preskoc nedulezite informace
76 for(pom=0;pom<55;pom++) //preskoc nedulezite informace 105 for(pom=0;pom<54;pom++) //preskoc nedulezite informace
77 { 106 {
78 getc(); 107 fgetc(MOBIL);
79 } 108 }
80 109
81 //gets(odp); //uloz zakodovany text SMS 110 //gets(odp); //uloz zakodovany text SMS
82 111
83 odp[0]=getc(); 112 odp[0]=fgetc(MOBIL);
84 odp[1]=getc(); 113 odp[1]=fgetc(MOBIL);
85 odp[2]=getc(); 114 odp[2]=fgetc(MOBIL);
86 odp[3]=getc(); 115 odp[3]=fgetc(MOBIL);
87 odp[4]=getc(); 116 odp[4]=fgetc(MOBIL);
88 odp[5]=getc(); 117 odp[5]=fgetc(MOBIL);
89 odp[6]=getc(); 118 odp[6]=fgetc(MOBIL);
90 odp[7]=getc(); 119 odp[7]=fgetc(MOBIL);
91 120  
92 /*lcd_gotoxy(1,1); 121 /*lcd_gotoxy(1,1);
93 printf(lcd_putc,"\f%s\n",odp);*/ 122 printf(lcd_putc,"\f%s\n",odp);*/
94 123
95 if(odp[0]==0) odp[1]='0'; // Prevod z ASCII do BIN 124 if(odp[0]==0) odp[1]='0'; // Prevod z ASCII do BIN
96 odp[0]=odp[0] - '0'; 125 odp[0]=odp[0] - '0';
Line 153... Line 182...
153 pom3 = 0; //smaz citac 182 pom3 = 0; //smaz citac
154 odp[pom+1] = odkl2; //uloz 8my znak vznikly z "prenosu" 183 odp[pom+1] = odkl2; //uloz 8my znak vznikly z "prenosu"
155 maskovadlo = 0; //smaz maskovadlo 184 maskovadlo = 0; //smaz maskovadlo
156 } 185 }
157 } 186 }
158 odp[pom]='\0'; 187 odp[pom]='\0';
-   188
159 /*lcd_gotoxy(1,3); 189 /*lcd_gotoxy(1,3);
160 printf(lcd_putc,"%u %u %u %u",odp[0],odp[1],odp[2],odp[3]); */ 190 printf(lcd_putc,"%u %u %u %u",odp[0],odp[1],odp[2],odp[3]); */
-   191 lcd_init();
161 lcd_gotoxy(1,1); 192 lcd_gotoxy(1,1);
162 printf(lcd_putc,"\fPrijata SMS s textem",); 193 printf(lcd_putc,"\fPrijata SMS s textem",);
163 lcd_gotoxy(9,3); 194 lcd_gotoxy(9,3);
164 printf(lcd_putc,"%s",odp); 195 printf(lcd_putc,"%s",odp);
165 output_low(PIN_A4) ; 196 output_low(PIN_A4) ;
166 delay_ms(5000); 197 delay_ms(1000);
167 output_high(PIN_A4); 198 output_high(PIN_A4);
-   199  
168 printf("AT+CMGD=1\r"); //smaz prijatou SMSku 200 //!!! fprintf(MOBIL,"AT+CMGD=1\r"); //smaz prijatou SMSku
169 201
170 if (odp[0] > 64 && odp[0] < 91 ) 202 if (odp[0] > 64 && odp[0] < 91 )
171 { 203 {
172 odp[0] += 32; 204 odp[0] += 32;
173 } 205 }
Line 192... Line 224...
192 lcd_gotoxy(1,2); 224 lcd_gotoxy(1,2);
193 printf(lcd_putc," pismen"); 225 printf(lcd_putc," pismen");
194 lcd_gotoxy(9,4); 226 lcd_gotoxy(9,4);
195 printf(lcd_putc,"%s",odp); 227 printf(lcd_putc,"%s",odp);
196 output_low(PIN_A4) ; 228 output_low(PIN_A4) ;
197 delay_ms(5000); 229 delay_ms(1000);
198 output_high(PIN_A4); 230 output_high(PIN_A4);
199 231
-   232  
-   233 //!!!KAKL
-   234 fprintf(VRTULE,"%s",odp);
-   235  
200 236  
201 if (odp[0] == 122 && odp[1] == 97 && odp[2] == 112 && odp[3] == 49) //odp=="zap1" 237 if (odp[0] == 122 && odp[1] == 97 && odp[2] == 112 && odp[3] == 49) //odp=="zap1"
202 { 238 {
203 status=1; 239 status=1;
204 } 240 }
205 241
Line 211... Line 247...
211 if (odp[0] == 97 && odp[1] == 104 && odp[2] == 111 && odp[3]== 106) //odp=="ahoj" 247 if (odp[0] == 97 && odp[1] == 104 && odp[2] == 111 && odp[3]== 106) //odp=="ahoj"
212 { 248 {
213 status=3; 249 status=3;
214 } 250 }
215 251
216 switch (status) { 252 switch (status)
-   253 {
217   254  
218 case 1: output_low(zar1); 255 case 1: output_low(zar1);
219 printf(lcd_putc,"\f"); 256 printf(lcd_putc,"\f");
220 lcd_gotoxy(1,2); 257 lcd_gotoxy(1,2);
221 printf(lcd_putc," Zapnuto zarizeni 1"); 258 printf(lcd_putc," Zapnuto zarizeni 1");
Line 235... Line 272...
235 default: printf(lcd_putc,"\f"); 272 default: printf(lcd_putc,"\f");
236 lcd_gotoxy(1,2); 273 lcd_gotoxy(1,2);
237 printf(lcd_putc," Prikaz nebyl"); 274 printf(lcd_putc," Prikaz nebyl");
238 lcd_gotoxy(1,3); 275 lcd_gotoxy(1,3);
239 printf(lcd_putc," rozeznan"); 276 printf(lcd_putc," rozeznan");
240 break; } 277 break;
241 278 }
242 delay_ms(5000); 279 delay_ms(1000);
243 } 280 }
-   281  
244 } 282 }
245 } 283 }