Rev Author Line No. Line
2926 jacho 1 #include "C:\Users\Honza\Documents\pic\I2C_magnetometr\main.h"
2 #define EEPROM_SDA PIN_B0
3 #define EEPROM_SCL PIN_B1
4 #use i2c(master, sda=EEPROM_SDA, scl=EEPROM_SCL)
5 #use rs232(baud=9600,parity=N,xmit=PIN_B3,rcv=PIN_B2,bits=8) //rcv TXD xmit RXD
6  
7  
8 void main()
9 {
10  
11 setup_adc_ports(NO_ANALOGS|VSS_VDD);
12 setup_adc(ADC_CLOCK_DIV_2);
13 setup_spi(SPI_SS_DISABLED);
14 setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
15 setup_timer_1(T1_DISABLED);
16 setup_timer_2(T2_DISABLED,0,1);
17 setup_ccp1(CCP_OFF);
18 setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard
19  
20 printf("Simple Thermomether \r\n",);
21 unsigned int8 XH,XL,YH,YL,ZH,ZL,INTEP,INTEP1, NAP,NAP1, PROUD,PROUD1,KAPZ,KAPZ1,KAPC,KAPC1, STAV,STAV1;
22 unsigned int8 XW,YW,ZW,AW;
23  
24 int16 data1;
25 int16 data2;
26 int16 data3;
27 int16 data4;
28 int16 data5;
29 int16 data6;
30 int16 data7;
31 int16 data8;
32 int16 data9;
33  
34 while(TRUE)
35 {
36 XL=0;
37 XH= 0;
38 YL= 0;
39 YH= 0;
40 ZL= 0;
41 ZH= 0;
42  
43 i2c_start();
44 I2C_Write(0x3C);
45 I2C_write(0x03);
46 i2c_stop();
47 i2c_start();
48 I2C_Write(0x3D);
49 XH=i2c_read(0);
50 i2c_stop();
51 i2c_start();
52 I2C_Write(0x3C);
53 I2C_write(0x04);
54 i2c_stop();
55 i2c_start();
56 I2C_Write(0x3D);
57 XL=i2c_read(0);
58 i2c_stop();
59 i2c_start();
60 I2C_Write(0x3C);
61 I2C_write(0x05);
62 i2c_stop();
63 i2c_start();
64 I2C_Write(0x3D);
65 ZH=i2c_read(0);
66 i2c_stop();
67 i2c_start();
68 I2C_Write(0x3C);
69 I2C_write(0x06);
70 i2c_stop();
71 i2c_start();
72 I2C_Write(0x3D);
73 ZL=i2c_read(0);
74 i2c_stop();
75 i2c_start();
76 I2C_Write(0x3C);
77 I2C_write(0x07);
78 i2c_stop();
79 i2c_start();
80 I2C_Write(0x3D);
81 YH=i2c_read(0);
82 i2c_stop();
83 i2c_start();
84 I2C_Write(0x3C);
85 I2C_write(0x08);
86 i2c_stop();
87 i2c_start();
88 I2C_Write(0x3D);
89 YL=i2c_read(0);
90 i2c_stop();
91  
92 Delay_ms(3700);
93  
94 data1 = (((unsigned int16) XH << 8) + XL );
95 data2 = (((unsigned int16) YH << 8) + YL );
96 data3 = (((unsigned int16) ZH << 8) + ZL );
97  
98 i2c_start();
99 I2C_Write(0xAA);
100 I2C_write(0x0c);
101  
102 i2c_start();
103 I2C_Write(0xAB);
104 INTEP=i2c_read(0);
105 i2c_stop();
106  
107 i2c_start();
108 I2C_Write(0xAA);
109 I2C_write(0x0d);
110 i2c_start();
111 I2C_Write(0xAB);
112 INTEP1=i2c_read(0);
113 i2c_stop();
114  
115 i2c_start();
116 I2C_Write(0xAA);
117 I2C_write(0x08);
118 i2c_stop();
119 i2c_start();
120 I2C_Write(0xAB);
121 NAP=i2c_read(0);
122 i2c_stop();
123  
124 i2c_start();
125 I2C_Write(0xAA);
126 I2C_write(0x09);
127 i2c_stop();
128 i2c_start();
129 I2C_Write(0xAB);
130 NAP1=i2c_read(0);
131 i2c_stop();
132  
133 i2c_start();
134 I2C_Write(0xAA);
135 I2C_write(0x0a);
136 i2c_stop();
137 i2c_start();
138 I2C_Write(0xAB);
139 PROUD=i2c_read(0);
140 i2c_stop();
141  
142 i2c_start();
143 I2C_Write(0xAA);
144 I2C_write(0x0b);
145 i2c_stop();
146 i2c_start();
147 I2C_Write(0xAB);
148 PROUD1=i2c_read(0);
149 i2c_stop();
150  
151  
152 i2c_start();
153 I2C_Write(0xAA);
154 I2C_write(0x04);
155 i2c_stop();
156 i2c_start();
157 I2C_Write(0xAB);
158 KAPZ=i2c_read(0);
159 i2c_stop();
160  
161 i2c_start();
162 I2C_Write(0xAA);
163 I2C_write(0x05);
164 i2c_stop();
165 i2c_start();
166 I2C_Write(0xAB);
167 KAPZ1=i2c_read(0);
168 i2c_stop();
169  
170  
171 i2c_start();
172 I2C_Write(0xAA);
173 I2C_write(0x06);
174 i2c_stop();
175 i2c_start();
176 I2C_Write(0xAB);
177 KAPC=i2c_read(0);
178 i2c_stop();
179  
180 i2c_start();
181 I2C_Write(0xAA);
182 I2C_write(0x07);
183 i2c_stop();
184 i2c_start();
185 I2C_Write(0xAB);
186 KAPC1=i2c_read(0);
187 i2c_stop();
188  
189 i2c_start();
190 I2C_Write(0xAA);
191 I2C_write(0x02);
192 i2c_stop();
193 i2c_start();
194 I2C_Write(0xAB);
195 STAV=i2c_read(0);
196 i2c_stop();
197  
198 i2c_start();
199 I2C_Write(0xAA);
200 I2C_write(0x03);
201 i2c_stop();
202 i2c_start();
203 I2C_Write(0xAB);
204 STAV1=i2c_read(0);
205 i2c_stop();
206  
207  
208 data4 = (((unsigned int16) INTEP1 << 8) + INTEP );
209 data4 = (data4/10)-273;
210 data5 = (((unsigned int16) NAP1 << 8) + NAP );
211 data6 = (((unsigned int16) PROUD1 << 8) + PROUD );
212 data7 = (((unsigned int16) KAPZ1 << 8) + KAPZ );
213 data8 = (((unsigned int16) KAPC1 << 8) + KAPC );
214 data9 = (((unsigned int16) STAV1 << 8) + STAV );
215  
216  
217  
218  
219  
220 printf("X %Ld \r\n", data1);
221 printf("Y %Ld \r\n", data2);
222 printf("Z %Ld \r\n", data3);
223 printf("Teplota uvnitr io: %Ld C\r\n", data4);
224 printf("Napeti clanku: %Ld mV \r\n", data5);
225 printf("Proud: %Ld mA \r\n", data6);
226 printf("Kapacita zbytek: %Ld mAh\r\n", data7);
227 printf("Kapacita max: %Ld mAh\r\n", data8);
228 printf("Stav: %Ld (procenta)\r\n", data9);
229  
230  
231  
232 i2c_start();
233 I2C_Write(0xAA);
234 I2C_write(0x61);
235 i2c_stop();
236 i2c_start();
237 I2C_Write(0xAA);
238 i2c_write(0x00);
239 i2c_stop();
240  
241 i2c_start();
242 I2C_Write(0xAA);
243 I2C_write(0x3e);
244 i2c_stop();
245 i2c_start();
246 I2C_Write(0xAA);
247 i2c_write(0x40);
248 i2c_stop();
249  
250 i2c_start();
251 I2C_Write(0xAA);
252 I2C_write(0x44);
253 i2c_stop();
254 i2c_start();
255 I2C_Write(0xAB);
256 STAV1=i2c_read(0);
257 i2c_stop();
258 printf("Stav: %X (procenta)\r\n", STAV1);
259 }
260 }