| Line 1... |
Line 1... |
| 1 |
/**** IR Mrakomer 4 ****/ |
1 |
/**** IR Mrakomer 4 ****/ |
| 2 |
#define VERSION "4.0" |
2 |
#define VERSION "4.0" |
| 3 |
#define ID "$Id: irmrak4.c 1288 2009-01-08 19:01:53Z kakl $" |
3 |
#define ID "$Id: irmrak4.c 1289 2009-01-08 19:13:06Z kakl $" |
| 4 |
#include "irmrak4.h" |
4 |
#include "irmrak4.h" |
| 5 |
|
5 |
|
| - |
|
6 |
#CASE // Case sensitive compiler |
| - |
|
7 |
|
| 6 |
#define MAXHEAT 20 // Number of cycles for heating |
8 |
#define MAXHEAT 20 // Number of cycles for heating |
| 7 |
#define MAXOPEN 20 // Number of cycles for dome open |
9 |
#define MAXOPEN 20 // Number of cycles for dome open |
| 8 |
#define MEASURE_DELAY 6000 // Delay to a next measurement |
10 |
#define MEASURE_DELAY 6000 // Delay to a next measurement |
| 9 |
#define RESPONSE_DELAY 100 // Reaction time after receiving a command |
11 |
#define RESPONSE_DELAY 100 // Reaction time after receiving a command |
| 10 |
#define SAFETY_COUNT 90 // Time of one emergency cycle |
12 |
#define SAFETY_COUNT 90 // Time of one emergency cycle |
| Line 67... |
Line 69... |
| 67 |
SMB_TX_byte(RAM_Access|select); |
69 |
SMB_TX_byte(RAM_Access|select); |
| 68 |
SMB_START_bit(); //Repeated Start condition |
70 |
SMB_START_bit(); //Repeated Start condition |
| 69 |
SMB_TX_byte(addr); |
71 |
SMB_TX_byte(addr); |
| 70 |
arr[2]=SMB_RX_byte(ACK); //Read low data,master must send ACK |
72 |
arr[2]=SMB_RX_byte(ACK); //Read low data,master must send ACK |
| 71 |
arr[1]=SMB_RX_byte(ACK); //Read high data,master must send ACK |
73 |
arr[1]=SMB_RX_byte(ACK); //Read high data,master must send ACK |
| 72 |
temp=MAKE16(arr[1],arr[2]); |
74 |
temp=make16(arr[1],arr[2]); |
| 73 |
crc=SMB_RX_byte(NACK); //Read PEC byte, master must send NACK |
75 |
crc=SMB_RX_byte(NACK); //Read PEC byte, master must send NACK |
| 74 |
SMB_STOP_bit(); //Stop condition |
76 |
SMB_STOP_bit(); //Stop condition |
| 75 |
|
77 |
|
| 76 |
arr[5]=addr; |
78 |
arr[5]=addr; |
| 77 |
arr[4]=RAM_Access|select; |
79 |
arr[4]=RAM_Access|select; |
| Line 108... |
Line 110... |
| 108 |
|
110 |
|
| 109 |
seq=0; // Variables initiation |
111 |
seq=0; // Variables initiation |
| 110 |
heat=0; |
112 |
heat=0; |
| 111 |
open=0; |
113 |
open=0; |
| 112 |
repeat=FALSE; |
114 |
repeat=FALSE; |
| 113 |
|
115 |
|
| 114 |
welcome(); |
116 |
welcome(); |
| 115 |
|
117 |
|
| 116 |
tempa=ReadTemp(SA, RAM_Tamb); // Dummy read |
118 |
tempa=ReadTemp(SA, RAM_Tamb); // Dummy read |
| 117 |
temp=ReadTemp(SA, RAM_Tobj1); |
119 |
temp=ReadTemp(SA, RAM_Tobj1); |
| 118 |
|
120 |
|
| Line 208... |
Line 210... |
| 208 |
sprintf(output,"%u ", heat); |
210 |
sprintf(output,"%u ", heat); |
| 209 |
j=0; while(output[j]!=0) { delay(SEND_DELAY); putc(output[j++]); } |
211 |
j=0; while(output[j]!=0) { delay(SEND_DELAY); putc(output[j++]); } |
| 210 |
sprintf(output,"%u\n\r\0", open); |
212 |
sprintf(output,"%u\n\r\0", open); |
| 211 |
j=0; while(output[j]!=0) { delay(SEND_DELAY); putc(output[j++]); } |
213 |
j=0; while(output[j]!=0) { delay(SEND_DELAY); putc(output[j++]); } |
| 212 |
} |
214 |
} |
| 213 |
|
215 |
|
| 214 |
if(heating>0) { output_high(HEATING); } else { output_low(HEATING); } |
216 |
if(heat>0) { output_high(HEATING); } else { output_low(HEATING); } |
| 215 |
|
217 |
|
| 216 |
delay(MEASURE_DELAY); // Delay to a next measurement |
218 |
delay(MEASURE_DELAY); // Delay to a next measurement |
| 217 |
//---WDT |
219 |
//---WDT |
| 218 |
restart_wdt(); |
220 |
restart_wdt(); |
| 219 |
} |
221 |
} |