Rev Author Line No. Line
2926 jacho 1 #include "main.h"
2984 kaklik 2 #include "HMC5883L.h"
2988 kaklik 3 #include <math.h>
2926 jacho 4  
5 void main()
6 {
2984 kaklik 7 setup_adc_ports(NO_ANALOGS|VSS_VDD);
8 setup_adc(ADC_CLOCK_DIV_2);
9 setup_spi(SPI_SS_DISABLED);
10 setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
11 setup_timer_1(T1_DISABLED);
12 setup_timer_2(T2_DISABLED,0,1);
13 setup_ccp1(CCP_OFF);
3275 kaklik 14 setup_comparator(NC_NC_NC_NC);
2926 jacho 15  
2998 kaklik 16 printf("Magnetometr: \r\n",);
3275 kaklik 17 printf("(c)mlab.cz kaklik 2013: \r\n",);
2998 kaklik 18 printf("X, Y, Z \r\n",);
19  
20  
2985 kaklik 21 // Init the HMC5883L. Set Mode register for
22 // continuous measurements.
23 hmc5883l_write_reg(HMC5883L_CFG_A_REG, 0x18); // no average, maximal update range
3275 kaklik 24 hmc5883l_write_reg(HMC5883L_CFG_B_REG, 0x00); // minimal range
2985 kaklik 25 hmc5883l_write_reg(HMC5883L_MODE_REG, 0x00);
2926 jacho 26  
2985 kaklik 27 // Continuously read and display the x,y,z results.
28 // Wait at least 67 ms between reads, re the HMC5883L data sheet.
29  
30  
31 while(TRUE)
32 {
33  
2998 kaklik 34 hmc5883l_read_data();
35 printf("%6Ld %6Ld %6Ld \n\r", compass.x, compass.y, compass.z);
36 delay_ms(100);
2985 kaklik 37 }
38  
2926 jacho 39 }
2985 kaklik 40  
41  
42