Rev 1862 Rev 1884
Line 1... Line 1...
1 /**** IR Mrakomer 4 ****/ 1 /**** IR Mrakomer 4 ****/
2 #define VERSION "4.1" 2 #define VERSION "4.1"
3 #define ID "$Id: irmrak4.c 1862 2011-02-20 17:22:55Z kakl $" 3 #define ID "$Id: irmrak4.c 1884 2011-02-26 10:11:40Z kakl $"
4   4  
5 #include "irmrak4.h" 5 #include "irmrak4.h"
6   6  
7 #bit CREN = 0x18.4 // USART registers 7 #bit CREN = 0x18.4 // USART registers
8 #bit SPEN = 0x18.7 8 #bit SPEN = 0x18.7
Line 51... Line 51...
51   51  
52 if (REV[strlen(REV)-1]=='$') REV[strlen(REV)-1]=0; 52 if (REV[strlen(REV)-1]=='$') REV[strlen(REV)-1]=0;
53 printf("\r\n\r\n# Mrakomer %s (C) 2007 UST\n\r",VER); // Welcome message 53 printf("\r\n\r\n# Mrakomer %s (C) 2007 UST\n\r",VER); // Welcome message
54 printf("#%s\r\n",&REV[4]); 54 printf("#%s\r\n",&REV[4]);
55 // printf("#\r\n"); 55 // printf("#\r\n");
56 printf("# commands: h, c, o, l, x, i, r, a, s, u\r\n"); 56 // printf("# commands: h, c, o, l, x, i, r, a, s, u\r\n");
57 // printf("# h_eat, c_old, o_pen, l_ock, x_open, "); 57 // printf("# h_eat, c_old, o_pen, l_ock, x_open, ");
58 // printf("i_nfo, r_epeat, a_uto, s_single, u_pdate\r\n"); 58 // printf("i_nfo, r_epeat, a_uto, s_single, u_pdate\r\n");
59 // printf("#\r\n"); 59 // printf("#\r\n");
60 // printf("# ver seq in[1/100 C] sky[1/100 C] sky[1/100 C] "); 60 // printf("# ver seq in[1/100 C] sky[1/100 C] sky[1/100 C] ");
61 // printf("out[1/100 C] heat[s] dome[s] check\r\n\r\n"); 61 // printf("out[1/100 C] heat[s] dome[s] check\r\n\r\n");
Line 135... Line 135...
135   135  
136 /*-------------------------------- MAIN --------------------------------------*/ 136 /*-------------------------------- MAIN --------------------------------------*/
137 void main() 137 void main()
138 { 138 {
139 unsigned int16 seq, temp, tempa; 139 unsigned int16 seq, temp, tempa;
140 signed int16 ta, to1, to2, tTouch, told; 140 signed int16 ta, to1, to2, tTouch, taOld;
141 int8 tLSB,tMSB; // Temperatures from TouchMemory 141 int8 tLSB,tMSB; // Temperatures from TouchMemory
142 int8 safety_counter; 142 int8 safety_counter;
-   143 int8 heatTime, heatPower;
143 int1 repeat; // Status flags 144 int1 repeat; // Status flags
144 int1 automatic; 145 int1 automatic;
145   146  
146 output_high(DOME); // Close Dome 147 output_high(DOME); // Close Dome
147 output_low(HEATING); // Heating off 148 output_low(HEATING); // Heating off
Line 150... Line 151...
150 restart_wdt(); 151 restart_wdt();
151   152  
152 seq=0; // Variables initiation 153 seq=0; // Variables initiation
153 heat=0; 154 heat=0;
154 open=0; 155 open=0;
-   156 heatTime=0;
-   157 heatPower=0;
-   158 taOld=2000;
155 repeat=TRUE; 159 repeat=TRUE;
156 automatic=FALSE; 160 automatic=FALSE;
157   161  
158 welcome(); 162 welcome();
159   163  
Line 288... Line 292...
288 } 292 }
289 } 293 }
290 294
291 if(automatic) // Solve automatic mode 295 if(automatic) // Solve automatic mode
292 { 296 {
-   297 if (heatTime==0)
-   298 {
293 if(((ta<400)||(ta<(tTouch+400)))&&(ta<2000)&&(ta<told)) heat=1; // Need heating 299 if((ta<taOld)&&(heatPower<20)) heatPower++; // Need wormer ?
-   300 if((ta>taOld)&&(heatPower>0)) heatPower--; // Need colder ?
-   301
-   302 if((ta>=300)&&(ta<2000)) heatPower=1;
-   303 if(ta>=2000) heatPower=0;
-   304  
294 told=ta; 305 taOld=ta;
-   306 heatTime=20;
295 if((abs(to1-to2)<100)&&(tTouch>to1)&&(abs(tTouch-to1)>800)) 307 if(ta>-10000) heat=heatPower;
-   308 }
-   309 heatTime--;
-   310
296 open=1; // Open the dome 311 if((abs(to1-to2)<100)&&(tTouch>to1)&&(abs(tTouch-to1)>800)) open=1; // Open the dome
297 } 312 }
298   313  
299 { // printf 314 { // printf
300 char output[8]; // Output buffer 315 char output[8]; // Output buffer
301 int8 j; // String pointer 316 int8 j; // String pointer