o: ActiveSupport::Cache::Entry :@compressedF: @value"O¡"H¡
main.hex
1
:1000000002308A00662A0000CD306737653AEF3645
1
:1000000002308A003C2A0000CD306737653AEF366F
2 2
:10001000653A721D20100D050000A831A936EC309C
3
:100020006210CA2043244F103218B1193A10A006AA
4
:100030000A005816A02C2C105A100D050001A01310
5
:10004000200883168700831287130830F8002828B9
6
:100050000000F8173928F813C00C03188717031C81
7
:100060008713781739287813F80B2C2837280000C5
8
:1000700087173F308400840B3B280000F81B2B2897
9
:10008000781B33280800831603178C170C14000004
10
:10009000000083120C087F39031987280313B70067
11
:1000A00003170D080313B80003170F080313B90053
12
:1000B0003708C0001F20380803178D0003133908C4
13
:1000C00003178F0083168C170C1400000000831296
14
:1000D0000C0D0E0D7F39031987280313B700031782
15
:1000E0000D080313B80003170F080313B9003708EE
16
:1000F000C0001F20380803178D00031339080317A9
17
:100100008F008D0A03198F0A031343280317031363
18
:1001100008000830F80000008711A011200883169D
19
:10012000870000008312BD0D0712031C9D282016B6
20
:10013000200883168700A128831220122008831626
21
:10014000870000008312A015200883168700831201
22
:10015000871DA828F80B8B2800008711A011200804
23
:10016000831687000000831220162008831687005C
24
:10017000000000008312A015200883168700831258
25
:10018000871DC028F8010000071A78148711A011F4
26
:100190002008831687008312071220122008831676
27
:1001A00087008312080020162008831687000000AD
28
:1001B0008312A015200883168700000083120712FF
29
:1001C0002012200883168700000083128711A011D7
30
:1001D0002008831687003C308312BD008920370831
31
:1001E000BD0089203808BD00892020122008831610
32
:1001F000870000008312A015200883168700831251
33
:10020000871D0029000004290000201620088316FD
34
:1002100087000000831208000830BE007708BF0086
35
:10022000201620088316870000008312A0152008DE
36
:10023000831687008312871D1B29071A0314071EC4
37
:100240000310F80D0000A011200883168700831208
38
:100250008711BE0B10292016200883168700000086
39
:10026000831207123F0803193A2920122008831627
40
:10027000870083120000A0152008831687008312D0
41
:10028000871D402900008711A011200883168700D0
42
:1002900000008312071220122008831687008312A1
43
:1002A0000800201620088316870000008312A0157E
44
:1002B00020088316870000008312071220122008EE
45
:1002C00083168700000083128711A011200883166F
46
:1002D00087003C308312BD0089200330BD00892097
47
:1002E000201620088316870000008312A01520081E
48
:1002F0008316870000008312871D7C2907122012B5
49
:10030000200883168700000083128711A01120089F
50
:10031000831687003D308312BD0089200130F7002D
51
:100320000C217808B8000130F7000C217808B700DC
52
:100330000130F7000C217808BC000130F7000C21D7
53
:100340007808BB000130F7000C217808BA00F701EB
54
:100350000C217808B90020122008831687000000BD
55
:100360008312A0152008831687008312871DB629E3
56
:100370000000BA290000201620088316870000001C
57
:1003800083123808A2003708A1003A08A4003908EF
58
:10039000A3003C08A6003B08A5008A110A12F62A11
59
:1003A000BF010408BE003F10831B3F14B81FE029A3
60
:1003B000BE173E1EBE0AB709B809B70A0319B80A24
61
:1003C000380EF038BA00BA07E23EBB00323EBD003C
62
:1003D00038080F39BB07BB07BD07E93EBC00BC07A7
63
:1003E000BC07370E0F39BC07BD07BC0DBD0DBD09DD
64
:1003F000BD0D37080F39BD07BA0D0730B9000A30F7
65
:10040000BD07BC03031C002ABC07BB03031C042A52
66
:10041000BB07BA03031C082ABA07B903031C0C2A3A
67
:1004200039308400831307303E053E1384033E05B4
68
:10043000031D212A3E1A840A3E1A212A2030F70081
69
:100440003E2A84073D30040203193E170008F700D6
70
:10045000031D322A3E1B322A3E1A4C2ABE19322A6A
71
:1004600020303D2ABE1F3A2A2D30F70084033E1368
72
:10047000BE133E2ABE153E123030F707B8010408FD
73
:10048000B7003810831B38147708C0001F203708C6
74
:100490008400831338188317840A3E1F222A080019
75
:1004A00037308400831300080319632A0230F800F0
76
:1004B000F701F70B592AF80B582A9730F700F70B7A
77
:1004C0005F2A800B562A8A110A121D2B840183137E
78
:1004D0001F308305713083168F000F088312A0131D
79
:1004E00020088316870083128717831603170908CD
80
:1004F000C039890003131F129F12003003178800B0
81
:100500008312870188018901FF300313A000A10134
82
:10051000A201A301A401A501A601B401B3018316A0
83
:1005200003170908C039890003131F129F120030F6
84
:1005300003178800831203131F139F1383169F133F
85
:1005400083121F149412A0122008831687008312AE
86
:1005500020162008831687008312A0112008831616
87
:100560008700013083129400003083169400010844
88
:10057000C73908388100831290010030F8009200DA
89
:1005800000308316920083122015200883168700FE
90
:100590008312970183169B019C0101309D008312F9
91
:1005A000031787018801890104308D0000308F0016
92
:1005B000031343200D3003178D0000308F00031309
93
:1005C0004320193003178D0000308F0003134320A0
94
:1005D000B7011830B800D3200130B700E030B800C0
95
:1005E000D3200230B700B801D32051290030840055
96
:1005F0002208B8002108B700D0212030C0001F20F9
97
:10060000003084002408B8002308B700D02120302F
98
:10061000C0001F20003084002608B8002508B7005D
99
:10062000D0212030C0001F200A30C0001F200D3014
100
:0E063000C0001F206430B700502AF52A630076
3
:100020006217633DA035E135EC346B103218B1191D
4
:100030003A10A0060A005816A02C2C105A100D05D4
5
:100040000001831603178C170C14000000008312A4
6
:100050000C087F39031967280313A70003170D083D
7
:100060000313A80003170F080313A90027080C1E89
8
:1000700037289900280803178D0003132908031750
9
:100080008F0083168C170C140000000083120C0DD7
10
:100090000E0D7F39031967280313A70003170D08F6
11
:1000A0000313A80003170F080313A90027080C1E49
12
:1000B00057289900280803178D00031329080317F0
13
:1000C0008F008D0A03198F0A0313212803170313C6
14
:1000D00008000830F80000008711A01120088316DE
15
:1000E000870000008312AD0D0712031C7D28201627
16
:1000F0002008831687008128831220122008831687
17
:10010000870000008312A015200883168700831241
18
:10011000871D8828F80B6B2800008711A011200884
19
:10012000831687000000831220162008831687009C
20
:10013000000000008312A015200883168700831298
21
:10014000871DA028F8010000071A78148711A01154
22
:1001500020088316870083120712201220088316B6
23
:1001600087008312080020162008831687000000ED
24
:100170008312A0152008831687000000831207123F
25
:100180002012200883168700000083128711A01117
26
:100190002008831687003C308312AD0069202708B1
27
:1001A000AD0069202808AD006920201220088316C0
28
:1001B000870000008312A015200883168700831291
29
:1001C000871DE0280000E428000020162008831680
30
:1001D00087000000831208000830AE007708AF00E7
31
:1001E000201620088316870000008312A01520081F
32
:1001F000831687008312871DFB28071A0314071E26
33
:100200000310F80D0000A011200883168700831248
34
:100210008711AE0BF02820162008831687000000F7
35
:10022000831207122F0803191A2920122008831697
36
:10023000870083120000A015200883168700831210
37
:10024000871D202900008711A01120088316870030
38
:1002500000008312071220122008831687008312E1
39
:100260000800201620088316870000008312A015BE
40
:10027000200883168700000083120712201220082E
41
:1002800083168700000083128711A01120088316AF
42
:1002900087003C308312AD0069200330AD00692037
43
:1002A000201620088316870000008312A01520085E
44
:1002B0008316870000008312871D5C290712201215
45
:1002C000200883168700000083128711A0112008E0
46
:1002D000831687003D308312AD0069200130F7009E
47
:1002E000EC207808A8000130F700EC207808A7007F
48
:1002F0000130F700EC207808AC000130F700EC206A
49
:100300007808AB000130F700EC207808AA00F7016C
50
:10031000EC207808A900201220088316870000002E
51
:100320008312A0152008831687008312871D962943
52
:1003300000009A290000201620088316870000007C
53
:1003400083122808A2002708A1002A08A40029086F
54
:10035000A3002C08A6002B08A5008A110A12CC2A9B
55
:10036000AF010408AE002F10831B2F14A81FC02953
56
:10037000AE172E1EAE0AA709A809A70A0319A80AD4
57
:10038000280EF038AA00AA07E23EAB00323EAD00CC
58
:1003900028080F39AB07AB07AD07E93EAC00AC0747
59
:1003A000AC07270E0F39AC07AD07AC0DAD0DAD098D
60
:1003B000AD0D27080F39AD07AA0D0730A9000A3087
61
:1003C000AD07AC03031CE029AC07AB03031CE42915
62
:1003D000AB07AA03031CE829AA07A903031CEC29FD
63
:1003E00029308400831307302E052E1384032E0535
64
:1003F000031D012A2E1A840A2E1A012A2030F70022
65
:100400001E2A84072D30040203192E170008F70056
66
:10041000031D122A2E1B122A2E1A222AAE19122A64
67
:1004200020301D2AAE1F1A2A2D30F70084032E1308
68
:10043000AE131E2AAE152E123030F70777080C1EA9
69
:100440001F2A9900840A2E1F022A080027308400E0
70
:10045000831300080319392A0230F800F701F70B5B
71
:100460002F2AF80B2E2A9730F700F70B352A800B2E
72
:100470002C2A8A110A12F82A840183131F3083055B
73
:10048000713083168F000F08031787110C30031388
74
:100490009900A230980090308312980083160317B9
75
:1004A0000908C039890003131F129F120030031777
76
:1004B00088008312870188018901FF300313A0009F
77
:1004C000A101A201A301A401A501A601831603179E
78
:1004D0000908C039890003131F129F120030031747
79
:1004E0008800831203131F139F1383169F13831215
80
:1004F0001F149412A012200883168700831220165E
81
:100500002008831687008312A01120088316870015
82
:100510000130831294000030831694000108C7391B
83
:1005200008388100831290010030F80092000030FA
84
:1005300083169200831220152008831687008312E9
85
:10054000970183169B019C0101309D0083120317C4
86
:1005500087018801890104308D0000308F0003136A
87
:1005600021200D3003178D0000308F000313212050
88
:100570001B3003178D0000308F0003132120A701CB
89
:100580001830A800B3200130A700A801B320023022
90
:10059000A700A801B3203129003084002208A80058
91
:1005A0002108A700B02120300C1ED42A9900003069
92
:1005B00084002408A8002308A700B02120300C1EC6
93
:1005C000DF2A9900003084002608A8002508A7002B
94
:1005D000B02120300C1EEA2A99000A300C1EEE2AA7
95
:1005E00099000D300C1EF22A99006430A700262ACB
96
:0405F000CB2A6300AF
101 97
:04400E00F52CFF3F4F
102 98
:00000001FF
103 99
;PIC16F887
104
;CRC=17FE  CREATED="17-V-13 12:14"
100
;CRC=2B66  CREATED="25-VIII-13 18:55"
main.h
17 17

  
18 18
#use delay(clock=8000000)
19 19
#use i2c(Master,Slow,sda=PIN_C4,scl=PIN_C3)
20
#use rs232(baud=9600,parity=N,xmit=PIN_C7,rcv=PIN_C6,bits=8) //rcv TXD xmit RXD
20
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8) //rcv TXD xmit RXD
21 21

  
main.sta
1 1

  
2
ROM used: 799 (10%)
3
          799 (10%) including unused fragments
2
ROM used: 762 (9%)
3
          762 (9%) including unused fragments
4 4

  
5 5
          0 Average locations per line
6
          3 Average locations per statement
6
          2 Average locations per statement
7 7

  
8
RAM used: 28 (8%) at main() level
9
          38 (10%) worst case
8
RAM used: 12 (3%) at main() level
9
          21 (6%) worst case
10 10

  
11 11
Stack used: 2 worst case (out of 8 total available)
12 12

  
13 13
Lines Stmts  %   Files
14 14
----- ----- ---  -----
15
   48    19   6  main.c
15
   43    19   6  main.c
16 16
   22     0   0  main.h
17 17
  423     0   0  C:\Program Files (x86)\PICC\devices\16F887.h
18 18
   25     0   0  HMC5883L.h
19 19
   76    28   9  HMC5883L.c
20 20
 2172   260  85  C:\Program Files (x86)\PICC\drivers\math.h
21 21
----- -----
22
 2766   307 Total
22
 2761   307 Total
23 23

  
24 24
Page ROM  %  RAM   Vol Diff  Functions:
25 25
---- --- --- ---   --- ----  ----------
26 26
0     22   3   1             @delay_ms1
27 27
0     69   9   3             @I2C_READ_1
28
0     74   9   1             @I2C_WRITE_1
29
0     36   5   1             @PUTCHAR_1_
28
0     74  10   1             @I2C_WRITE_1
30 29
0     57   7   2   102  1.8  hmc5883l_write_reg
31
0    127  16   6   636  3.3  hmc5883l_read_data
32
0    185  23  16   722  3.9  MAIN
33
0      9   1   0             @const237
34
0     70   9   3             @PSTRINGC7_69
35
0     12   2   0             @const239
36
0      6   1   0             @const240
37
0    128  16   9             @PRINTF_LD_69
30
0    127  17   6   636  3.3  hmc5883l_read_data
31
0    190  25   0   595  3.3  MAIN
32
0      9   1   0    78  2.7  @const229
33
0     72   9   3   722  3.9  @PSTRINGC7_9600_62_63
34
0     14   2   0             @const231
35
0      6   1   0             @const232
36
0    118  15   9             @PRINTF_LD_9600_62_63
38 37

  
39 38
Program metrics:
40
    Functions               3
39
    Functions               5
41 40
    Statements              307
42
    Comments                358
43
    Volume (V)              1829
44
    Difficilty (D)          8.6
45
    Effort to implement (E) 15712
46
    Time to implement (T)   15 minutes
41
    Comments                356
42
    Volume (V)              2913
43
    Difficilty (D)          14.9
44
    Effort to implement (E) 43483
45
    Time to implement (T)   40 minutes
47 46
    Est Delivered Bugs (B)  0
48 47
    Cyclomatic Complexity   1
49
    Maintainability (MI)    16
48
    Maintainability (MI)    95
50 49

  
51 50
 Segment     Used  Free
52 51
-----------  ----  ----
53 52
00000-00003     4  0  
54
00004-007FF   795  1249  
53
00004-007FF   758  1286  
55 54
00800-00FFF     0  2048  
56 55
01000-017FF     0  2048  
57 56
01800-01FFF     0  2048  
main.err
1
>>> Warning 202 "main.c" Line 7(7,11): Variable never used:   last
2
>>> Warning 202 "main.c" Line 7(12,13): Variable never used:   b
3
>>> Warning 202 "main.c" Line 7(14,25): Variable never used:   anemo_speed
4
>>> Warning 202 "main.c" Line 8(16,27): Variable never used:   anemo_round
5
>>> Warning 202 "main.c" Line 9(16,17): Variable never used:   i
6
      Memory usage:   ROM=10%      RAM=8% - 10%
7
      0 Errors,  5 Warnings.
1
      Memory usage:   ROM=9%      RAM=3% - 6%
2
      0 Errors,  0 Warnings.
main.sym
1 1
004-005 @READ_PROGRAM_MEMORY8.P1
2 2
004     @WRITE_PROGRAM_MEMORY8.P2
3
015     CCP_1
3 4
015     CCP_1_LOW
4
015     CCP_1
5 5
016     CCP_1_HIGH
6 6
01B     CCP_2_LOW
7 7
01B     CCP_2
8 8
01C     CCP_2_HIGH
9 9
020     @TRIS_C
10 10
021-026 compass
11
027-02A MAIN.last
12
02B-02E MAIN.b
13
02F-032 MAIN.anemo_speed
14
033-034 MAIN.anemo_round
15
035-036 MAIN.i
16
037-038 @PRINTF_LD_69.P1
17
037     hmc5883l_write_reg.reg
18
037     @delay_ms1.P1
19
037     hmc5883l_read_data.x_lsb
20
037     @PSTRINGC7_69.@SCRATCH1
21
038     hmc5883l_read_data.x_msb
22
038     hmc5883l_write_reg.data
23
038     @PSTRINGC7_69.@SCRATCH2
24
039     hmc5883l_read_data.y_lsb
25
039     @PSTRINGC7_69.@SCRATCH3
26
039     @PRINTF_LD_69.@SCRATCH1
27
03A     hmc5883l_read_data.y_msb
28
03A     @PRINTF_LD_69.@SCRATCH2
29
03B     hmc5883l_read_data.z_lsb
30
03B     @PRINTF_LD_69.@SCRATCH3
31
03C     hmc5883l_read_data.z_msb
32
03C     @PRINTF_LD_69.@SCRATCH4
33
03D     @I2C_READ_1.P1
34
03D     @I2C_WRITE_1.P2
35
03D     @PRINTF_LD_69.@SCRATCH5
36
03E     @I2C_READ_1.@SCRATCH1
37
03E     @PRINTF_LD_69.@SCRATCH6
38
03F     @I2C_READ_1.@SCRATCH2
39
03F     @PRINTF_LD_69.@SCRATCH7
40
040     @PUTCHAR_1_.P1
11
027     hmc5883l_write_reg.reg
12
027     @delay_ms1.P1
13
027     hmc5883l_read_data.x_lsb
14
027-028 @PRINTF_LD_9600_62_63.P1
15
027     @PSTRINGC7_9600_62_63.@SCRATCH1
16
028     hmc5883l_write_reg.data
17
028     hmc5883l_read_data.x_msb
18
028     @PSTRINGC7_9600_62_63.@SCRATCH2
19
029     hmc5883l_read_data.y_lsb
20
029     @PSTRINGC7_9600_62_63.@SCRATCH3
21
029     @PRINTF_LD_9600_62_63.@SCRATCH1
22
02A     hmc5883l_read_data.y_msb
23
02A     @PRINTF_LD_9600_62_63.@SCRATCH2
24
02B     hmc5883l_read_data.z_lsb
25
02B     @PRINTF_LD_9600_62_63.@SCRATCH3
26
02C     hmc5883l_read_data.z_msb
27
02C     @PRINTF_LD_9600_62_63.@SCRATCH4
28
02D     @I2C_READ_1.P1
29
02D     @I2C_WRITE_1.P2
30
02D     @PRINTF_LD_9600_62_63.@SCRATCH5
31
02E     @I2C_READ_1.@SCRATCH1
32
02E     @PRINTF_LD_9600_62_63.@SCRATCH6
33
02F     @I2C_READ_1.@SCRATCH2
34
02F     @PRINTF_LD_9600_62_63.@SCRATCH7
41 35
077     @SCRATCH
42 36
078     @SCRATCH
43 37
078     _RETURN_
......
49 43
10D-10E @READ_PROGRAM_MEMORY8.P2
50 44

  
51 45
ROM Allocation:
52
0250  @delay_ms1
53
010C  @I2C_READ_1
54
0089  @I2C_WRITE_1
55
001F  @PUTCHAR_1_
56
00D3  hmc5883l_write_reg
57
0151  hmc5883l_read_data
58
0266  MAIN
59
0004  @const237
60
0043  @PSTRINGC7_69
61
000D  @const239
62
0019  @const240
63
01D0  @PRINTF_LD_69
64
0266  @cinit
46
0226  @delay_ms1
47
00EC  @I2C_READ_1
48
0069  @I2C_WRITE_1
49
00B3  hmc5883l_write_reg
50
0131  hmc5883l_read_data
51
023C  MAIN
52
0004  @const229
53
0021  @PSTRINGC7_9600_62_63
54
000D  @const231
55
001B  @const232
56
01B0  @PRINTF_LD_9600_62_63
57
023C  @cinit
65 58

  
66 59

  
67 60
User Memory space: 
main.tre
1 1
??main
2
   ??MAIN  0/185  Ram=16
2
   ??MAIN  0/190  Ram=0
3 3
      ????0??
4
      ??@PSTRINGC7_69  0/70  Ram=3
5
      ?  ??@PUTCHAR_1_  0/36  Ram=1
6
      ?  ??@PUTCHAR_1_  0/36  Ram=1
7
      ??@PSTRINGC7_69  0/70  Ram=3
8
      ?  ??@PUTCHAR_1_  0/36  Ram=1
9
      ?  ??@PUTCHAR_1_  0/36  Ram=1
10
      ??@PSTRINGC7_69  0/70  Ram=3
11
      ?  ??@PUTCHAR_1_  0/36  Ram=1
12
      ?  ??@PUTCHAR_1_  0/36  Ram=1
4
      ??@PSTRINGC7_9600_62_63  0/72  Ram=3
5
      ??@PSTRINGC7_9600_62_63  0/72  Ram=3
6
      ??@PSTRINGC7_9600_62_63  0/72  Ram=3
13 7
      ??hmc5883l_write_reg  0/57  Ram=2
14 8
      ?  ??@I2C_WRITE_1  0/74  Ram=1
15 9
      ?  ??@I2C_WRITE_1  0/74  Ram=1
......
32 26
      ?  ??@I2C_READ_1  0/69  Ram=3
33 27
      ?  ??@I2C_READ_1  0/69  Ram=3
34 28
      ?  ??@I2C_READ_1  0/69  Ram=3
35
      ??@PRINTF_LD_69  0/128  Ram=9
36
      ?  ??@PUTCHAR_1_  0/36  Ram=1
37
      ??@PUTCHAR_1_  0/36  Ram=1
38
      ??@PRINTF_LD_69  0/128  Ram=9
39
      ?  ??@PUTCHAR_1_  0/36  Ram=1
40
      ??@PUTCHAR_1_  0/36  Ram=1
41
      ??@PRINTF_LD_69  0/128  Ram=9
42
      ?  ??@PUTCHAR_1_  0/36  Ram=1
43
      ??@PUTCHAR_1_  0/36  Ram=1
44
      ??@PUTCHAR_1_  0/36  Ram=1
45
      ??@PUTCHAR_1_  0/36  Ram=1
29
      ??@PRINTF_LD_9600_62_63  0/118  Ram=9
30
      ??@PRINTF_LD_9600_62_63  0/118  Ram=9
31
      ??@PRINTF_LD_9600_62_63  0/118  Ram=9
46 32
      ??@delay_ms1  0/22  Ram=1
main.esym
1
D G "__PCM__" 0 0 ""4.106""
2
D G "__DEVICE__" 0 0 ""
3
D G "__DATE__" 0 0 ""17-V-13""
4
D G "__TIME__" 0 0 ""12:14:46"" "Standard Header file for the PIC16F887 device ////////////////"
1
D G "__PCM__" 0 44 ""4.106""
2
D G "__DEVICE__" 0 44 "887"
3
D G "__DATE__" 0 44 ""25-VIII-13""
4
D G "__TIME__" 0 44 ""18:55:43"" "Standard Header file for the PIC16F887 device ////////////////"
5 5
d G "PIN_A0" 2 20 "40"
6 6
d G "PIN_A1" 2 21 "41"
7 7
d G "PIN_A2" 2 22 "42"
......
288 288
D G "MAG_ROZ560" 3 19 "0xC0"
289 289
D G "MAG_ROZ810" 3 20 "0xE0"
290 290
C L "hmc5883l_write_reg" 4 2 1 "FUNCTION"
291
F G "hmc5883l_write_reg" 4 4 "void()"
291
F G "hmc5883l_write_reg" 4 4 "void(int8 reg,int8 data)"
292 292
V L "reg" 4 4 "int8"
293 293
V L "data" 4 4 "int8"
294
F G "hmc5883l_read_reg" 4 14 "int8()"
294
F G "hmc5883l_read_reg" 4 14 "int8(int8 reg)"
295 295
V L "reg" 4 14 "int8"
296 296
V L "retval" 4 16 "int8"
297 297
T G "hmc5883l_result" 4 35 "{sint16 x,sint16 y,sint16 z}" "This global structure holds the values read"
......
310 310
D G "PI" 5 26 "3.1415926535897932"
311 311
D G "SQRT2" 5 29 "1.4142135623730950"
312 312
C L "CEIL_FLOOR" 5 2 3 "FUNCTION"
313
F G "CEIL_FLOOR" 5 36 "float()"
313
F G "CEIL_FLOOR" 5 36 "float(float x,int8 n)"
314 314
V L "x" 5 36 "float"
315 315
V L "n" 5 36 "int8"
316 316
V L "y" 5 38 "float"
......
318 318
V L "l" 5 39 "int16"
319 319
V L "s" 5 40 "int1"
320 320
C L "floor" 5 2 5 "FUNCTION"
321
F G "floor" 5 192 "float()"
321
F G "floor" 5 192 "float(float x)"
322 322
V L "x" 5 192 "float"
323 323
C L "ceil" 5 2 5 "FUNCTION"
324
F G "ceil" 5 218 "float()"
324
F G "ceil" 5 218 "float(float x)"
325 325
V L "x" 5 218 "float"
326 326
D G "fabs" 5 244 "abs"
327 327
C L "fmod" 5 2 6 "FUNCTION"
328
F G "fmod" 5 256 "float()"
328
F G "fmod" 5 256 "float(float x,float y)"
329 329
V L "x" 5 256 "float"
330 330
V L "y" 5 256 "float"
331 331
V L "i" 5 258 "float"
332 332
D G "LN2" 5 319 "0.6931471805599453"
333 333
V G "pe" 5 321 "float[6]"
334
F G "exp" 5 325 "float()"
334
F G "exp" 5 325 "float(float x)"
335 335
V L "x" 5 325 "float"
336 336
V L "y" 5 327 "float"
337 337
V L "res" 5 327 "float"
......
342 342
V G "pl" 5 496 "float[4]"
343 343
V G "ql" 5 497 "float[4]"
344 344
C L "log" 5 2 3 "FUNCTION"
345
F G "log" 5 505 "float()"
345
F G "log" 5 505 "float(float x)"
346 346
V L "x" 5 505 "float"
347 347
V L "y" 5 507 "float"
348 348
V L "res" 5 507 "float"
......
352 352
C L "log" 5 2 1 "FUNCTION"
353 353
D G "LN10" 5 729 "2.3025850929940456"
354 354
C L "log10" 5 2 3 "FUNCTION"
355
F G "log10" 5 737 "float()"
355
F G "log10" 5 737 "float(float x)"
356 356
V L "x" 5 737 "float"
357 357
V L "r" 5 739 "float"
358 358
C L "modf" 5 2 8 "FUNCTION"
359
F G "modf" 5 778 "float()"
359
F G "modf" 5 778 "float(float value,*float iptr)"
360 360
V L "value" 5 778 "float"
361 361
V L "iptr" 5 778 "*float"
362 362
C L "pwr" 5 2 6 "FUNCTION"
363
F G "pwr" 5 806 "float()"
363
F G "pwr" 5 806 "float(float x,float y)"
364 364
V L "x" 5 806 "float"
365 365
V L "y" 5 806 "float"
366 366
C L "pow" 5 2 7 "FUNCTION"
367
F G "pow" 5 869 "float()"
367
F G "pow" 5 869 "float(float x,float y)"
368 368
V L "x" 5 869 "float"
369 369
V L "y" 5 869 "float"
370 370
C L "sqrt" 5 2 5 "FUNCTION"
371
F G "sqrt" 5 930 "float()"
371
F G "sqrt" 5 930 "float(float x)"
372 372
V L "x" 5 930 "float"
373 373
V L "y" 5 932 "float"
374 374
V L "res" 5 932 "float"
375 375
V L "p" 5 936 "*int8"
376 376
D G "PI_DIV_BY_TWO" 5 1125 "1.5707963267948966"
377 377
C L "cos" 5 2 3 "FUNCTION"
378
F G "cos" 5 1136 "float()"
378
F G "cos" 5 1136 "float(float x)"
379 379
V L "x" 5 1136 "float"
380 380
V L "y" 5 1138 "float"
381 381
V L "t" 5 1138 "float"
......
393 393
C L "cos" 5 2 1 "FUNCTION"
394 394
C L "cos" 5 2 1 "FUNCTION"
395 395
C L "sin" 5 2 5 "FUNCTION"
396
F G "sin" 5 1278 "float()"
396
F G "sin" 5 1278 "float(float x)"
397 397
V L "x" 5 1278 "float"
398 398
C L "tan" 5 2 5 "FUNCTION"
399
F G "tan" 5 1304 "float()"
399
F G "tan" 5 1304 "float(float x)"
400 400
V L "x" 5 1304 "float"
401 401
V L "c" 5 1306 "float"
402 402
V L "s" 5 1306 "float"
403 403
V G "pas" 5 1344 "float[3]"
404 404
V G "qas" 5 1345 "float[3]"
405
F G "ASIN_COS" 5 1347 "float()"
405
F G "ASIN_COS" 5 1347 "float(float x,int8 n)"
406 406
V L "x" 5 1347 "float"
407 407
V L "n" 5 1347 "int8"
408 408
V L "y" 5 1349 "float"
......
413 413
C L "ASIN_COS" 5 2 1 "FUNCTION"
414 414
C L "ASIN_COS" 5 2 1 "FUNCTION"
415 415
C L "asin" 5 2 5 "FUNCTION"
416
F G "asin" 5 1493 "float()"
416
F G "asin" 5 1493 "float(float x)"
417 417
V L "x" 5 1493 "float"
418 418
V L "r" 5 1495 "float"
419 419
C L "acos" 5 2 5 "FUNCTION"
420
F G "acos" 5 1527 "float()"
420
F G "acos" 5 1527 "float(float x)"
421 421
V L "x" 5 1527 "float"
422 422
V L "r" 5 1529 "float"
423 423
V G "pat" 5 1555 "float[4]"
424 424
V G "qat" 5 1556 "float[4]"
425 425
C L "atan" 5 2 3 "FUNCTION"
426
F G "atan" 5 1564 "float()"
426
F G "atan" 5 1564 "float(float x)"
427 427
V L "x" 5 1564 "float"
428 428
V L "y" 5 1566 "float"
429 429
V L "res" 5 1566 "float"
......
432 432
V L "flag" 5 1567 "int1"
433 433
C L "atan" 5 2 1 "FUNCTION"
434 434
C L "atan2" 5 2 7 "FUNCTION"
435
F G "atan2" 5 1697 "float()"
435
F G "atan2" 5 1697 "float(float y,float x)"
436 436
V L "y" 5 1697 "float"
437 437
V L "x" 5 1697 "float"
438 438
V L "z" 5 1699 "float"
......
441 441
C L "atan2" 5 2 1 "FUNCTION"
442 442
C L "atan2" 5 2 1 "FUNCTION"
443 443
C L "cosh" 5 2 7 "FUNCTION"
444
F G "cosh" 5 1919 "float()"
444
F G "cosh" 5 1919 "float(float x)"
445 445
V L "x" 5 1919 "float"
446 446
C L "sinh" 5 2 6 "FUNCTION"
447
F G "sinh" 5 1946 "float()"
447
F G "sinh" 5 1946 "float(float x)"
448 448
V L "x" 5 1946 "float"
449 449
C L "tanh" 5 2 6 "FUNCTION"
450
F G "tanh" 5 1976 "float()"
450
F G "tanh" 5 1976 "float(float x)"
451 451
V L "x" 5 1976 "float"
452 452
D G "LOG2" 5 2006 ".30102999566398119521"
453
F G "frexp" 5 2007 "float()"
453
F G "frexp" 5 2007 "float(float x,*sint8 exp)"
454 454
V L "x" 5 2007 "float"
455 455
V L "exp" 5 2007 "*sint8"
456 456
V L "res" 5 2009 "float"
457 457
V L "sign" 5 2010 "int1"
458 458
C L "ldexp" 5 2 6 "FUNCTION"
459
F G "ldexp" 5 2152 "float()"
459
F G "ldexp" 5 2152 "float(float value,sint8 exp)"
460 460
V L "value" 5 2152 "float"
461 461
V L "exp" 5 2152 "sint8"
462 462
C L "MAIN" 5 2 2 "FUNCTION"
463 463
F G "MAIN" 0 5 "void()"
464
V L "last" 0 7 "float"
465
V L "b" 0 7 "float"
466
V L "anemo_speed" 0 7 "float"
467
V L "anemo_round" 0 8 "int16"
468
V L "i" 0 9 "int16" "signed int16 X,Y,Z;"
469
C L "MAIN" 0 19 1 "FUNCTION"
470
C L "MAIN" 0 19 2 "FUNCTION"
471
C L "MAIN" 0 19 1 "FUNCTION"
472
C L "MAIN" 0 19 1 "FUNCTION"
473
C L "MAIN" 0 19 2 "FUNCTION"
464
C L "MAIN" 0 21 2 "FUNCTION"
465
C L "MAIN" 0 21 1 "FUNCTION"
466
C L "MAIN" 0 21 1 "FUNCTION"
467
C L "MAIN" 0 21 2 "FUNCTION"
474 468
F B "reset_cpu" 0 0
475 469
F B "abs" 1 0
476 470
F B "sleep_ulpwu" 1 0
......
603 597
F B "getch" 0 1
604 598
F B "gets" 1 3
605 599
F B "kbhit" 0 1
600
F B "set_uart_speed" 1 3
601
F B "setup_uart" 1 3
main.pjt
17 17
0=0000 %S 0 0 796 451 3 0
18 18
[Opened Files]
19 19
1=main.c
20
2=
20
2=main.h
21 21
3=C:\Program Files (x86)\PICC\devices\16F887.h
22 22
4=HMC5883L.h
23 23
5=HMC5883L.c
main.c
4 4

  
5 5
void main()
6 6
{
7
float last,b,anemo_speed;
8
unsigned int16 anemo_round=0;
9
unsigned int16 i;
10

  
11
//signed int16 X,Y,Z;
12 7
  setup_adc_ports(NO_ANALOGS|VSS_VDD);
13 8
  setup_adc(ADC_CLOCK_DIV_2);
14 9
  setup_spi(SPI_SS_DISABLED);
......
16 11
  setup_timer_1(T1_DISABLED);
17 12
  setup_timer_2(T2_DISABLED,0,1);
18 13
  setup_ccp1(CCP_OFF);
19
  setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard
14
  setup_comparator(NC_NC_NC_NC);
20 15

  
21 16
  printf("Magnetometr:  \r\n",);
22
  printf("(c)mlab JACHO 2013:  \r\n",);
17
  printf("(c)mlab.cz kaklik 2013:  \r\n",);
23 18
  printf("X, Y, Z \r\n",);
24 19

  
25 20

  
26 21
// Init the HMC5883L.  Set Mode register for
27 22
// continuous measurements.
28 23
hmc5883l_write_reg(HMC5883L_CFG_A_REG, 0x18);      // no average, maximal update range
29
hmc5883l_write_reg(HMC5883L_CFG_B_REG, 0xE0);      // maximal range
24
hmc5883l_write_reg(HMC5883L_CFG_B_REG, 0x00);      // minimal range
30 25
hmc5883l_write_reg(HMC5883L_MODE_REG, 0x00);
31 26

  
32 27
// Continuously read and display the x,y,z results.
main.lst
1
CCS PCM C Compiler, Version 4.106, 47914               17-V-13 12:14
1
CCS PCM C Compiler, Version 4.106, 47914               25-VIII-13 18:55
2 2

  
3 3
               Filename: Z:\home\kaklik\svnMLAB\Modules\Sensors\MAG01A\SW\PIC16F887\main.lst
4 4

  
5
               ROM used: 799 words (10%)
5
               ROM used: 762 words (9%)
6 6
                         Largest free fragment is 2048
7
               RAM used: 28 (8%) at main() level
8
                         38 (10%) worst case
7
               RAM used: 12 (3%) at main() level
8
                         21 (6%) worst case
9 9
               Stack:    2 locations
10 10

  
11 11
*
12 12
0000:  MOVLW  02
13 13
0001:  MOVWF  0A
14
0002:  GOTO   266
14
0002:  GOTO   23C
15 15
0003:  NOP
16 16
.................... #include "main.h" 
17 17
.................... #include <16F887.h> 
......
37 37
....................  
38 38
.................... #use delay(clock=8000000) 
39 39
*
40
0250:  MOVLW  37
41
0251:  MOVWF  04
42
0252:  BCF    03.7
43
0253:  MOVF   00,W
44
0254:  BTFSC  03.2
45
0255:  GOTO   263
46
0256:  MOVLW  02
47
0257:  MOVWF  78
48
0258:  CLRF   77
49
0259:  DECFSZ 77,F
50
025A:  GOTO   259
51
025B:  DECFSZ 78,F
52
025C:  GOTO   258
53
025D:  MOVLW  97
54
025E:  MOVWF  77
55
025F:  DECFSZ 77,F
56
0260:  GOTO   25F
57
0261:  DECFSZ 00,F
58
0262:  GOTO   256
59
0263:  BCF    0A.3
60
0264:  BCF    0A.4
61
0265:  GOTO   31D (RETURN)
40
0226:  MOVLW  27
41
0227:  MOVWF  04
42
0228:  BCF    03.7
43
0229:  MOVF   00,W
44
022A:  BTFSC  03.2
45
022B:  GOTO   239
46
022C:  MOVLW  02
47
022D:  MOVWF  78
48
022E:  CLRF   77
49
022F:  DECFSZ 77,F
50
0230:  GOTO   22F
51
0231:  DECFSZ 78,F
52
0232:  GOTO   22E
53
0233:  MOVLW  97
54
0234:  MOVWF  77
55
0235:  DECFSZ 77,F
56
0236:  GOTO   235
57
0237:  DECFSZ 00,F
58
0238:  GOTO   22C
59
0239:  BCF    0A.3
60
023A:  BCF    0A.4
61
023B:  GOTO   2F8 (RETURN)
62 62
.................... #use i2c(Master,Slow,sda=PIN_C4,scl=PIN_C3) 
63 63
*
64
0089:  MOVLW  08
65
008A:  MOVWF  78
66
008B:  NOP
67
008C:  BCF    07.3
68
008D:  BCF    20.3
69
008E:  MOVF   20,W
70
008F:  BSF    03.5
71
0090:  MOVWF  07
72
0091:  NOP
73
0092:  BCF    03.5
74
0093:  RLF    3D,F
75
0094:  BCF    07.4
76
0095:  BTFSS  03.0
77
0096:  GOTO   09D
78
0097:  BSF    20.4
79
0098:  MOVF   20,W
80
0099:  BSF    03.5
81
009A:  MOVWF  07
82
009B:  GOTO   0A1
83
009C:  BCF    03.5
84
009D:  BCF    20.4
85
009E:  MOVF   20,W
86
009F:  BSF    03.5
87
00A0:  MOVWF  07
88
00A1:  NOP
89
00A2:  BCF    03.5
90
00A3:  BSF    20.3
91
00A4:  MOVF   20,W
92
00A5:  BSF    03.5
93
00A6:  MOVWF  07
94
00A7:  BCF    03.5
95
00A8:  BTFSS  07.3
96
00A9:  GOTO   0A8
97
00AA:  DECFSZ 78,F
98
00AB:  GOTO   08B
99
00AC:  NOP
100
00AD:  BCF    07.3
101
00AE:  BCF    20.3
102
00AF:  MOVF   20,W
103
00B0:  BSF    03.5
104
00B1:  MOVWF  07
105
00B2:  NOP
106
00B3:  BCF    03.5
107
00B4:  BSF    20.4
108
00B5:  MOVF   20,W
109
00B6:  BSF    03.5
110
00B7:  MOVWF  07
111
00B8:  NOP
112
00B9:  NOP
113
00BA:  BCF    03.5
114
00BB:  BSF    20.3
115
00BC:  MOVF   20,W
116
00BD:  BSF    03.5
117
00BE:  MOVWF  07
118
00BF:  BCF    03.5
119
00C0:  BTFSS  07.3
120
00C1:  GOTO   0C0
121
00C2:  CLRF   78
122
00C3:  NOP
123
00C4:  BTFSC  07.4
124
00C5:  BSF    78.0
125
00C6:  BCF    07.3
126
00C7:  BCF    20.3
127
00C8:  MOVF   20,W
128
00C9:  BSF    03.5
129
00CA:  MOVWF  07
130
00CB:  BCF    03.5
131
00CC:  BCF    07.4
132
00CD:  BCF    20.4
133
00CE:  MOVF   20,W
134
00CF:  BSF    03.5
135
00D0:  MOVWF  07
136
00D1:  BCF    03.5
137
00D2:  RETURN
64
0069:  MOVLW  08
65
006A:  MOVWF  78
66
006B:  NOP
67
006C:  BCF    07.3
68
006D:  BCF    20.3
69
006E:  MOVF   20,W
70
006F:  BSF    03.5
71
0070:  MOVWF  07
72
0071:  NOP
73
0072:  BCF    03.5
74
0073:  RLF    2D,F
75
0074:  BCF    07.4
76
0075:  BTFSS  03.0
77
0076:  GOTO   07D
78
0077:  BSF    20.4
79
0078:  MOVF   20,W
80
0079:  BSF    03.5
81
007A:  MOVWF  07
82
007B:  GOTO   081
83
007C:  BCF    03.5
84
007D:  BCF    20.4
85
007E:  MOVF   20,W
86
007F:  BSF    03.5
87
0080:  MOVWF  07
88
0081:  NOP
89
0082:  BCF    03.5
90
0083:  BSF    20.3
91
0084:  MOVF   20,W
92
0085:  BSF    03.5
93
0086:  MOVWF  07
94
0087:  BCF    03.5
95
0088:  BTFSS  07.3
96
0089:  GOTO   088
97
008A:  DECFSZ 78,F
98
008B:  GOTO   06B
99
008C:  NOP
100
008D:  BCF    07.3
101
008E:  BCF    20.3
102
008F:  MOVF   20,W
103
0090:  BSF    03.5
104
0091:  MOVWF  07
105
0092:  NOP
106
0093:  BCF    03.5
107
0094:  BSF    20.4
108
0095:  MOVF   20,W
109
0096:  BSF    03.5
110
0097:  MOVWF  07
111
0098:  NOP
112
0099:  NOP
113
009A:  BCF    03.5
114
009B:  BSF    20.3
115
009C:  MOVF   20,W
116
009D:  BSF    03.5
117
009E:  MOVWF  07
118
009F:  BCF    03.5
119
00A0:  BTFSS  07.3
120
00A1:  GOTO   0A0
121
00A2:  CLRF   78
122
00A3:  NOP
123
00A4:  BTFSC  07.4
124
00A5:  BSF    78.0
125
00A6:  BCF    07.3
126
00A7:  BCF    20.3
127
00A8:  MOVF   20,W
128
00A9:  BSF    03.5
129
00AA:  MOVWF  07
130
00AB:  BCF    03.5
131
00AC:  BCF    07.4
132
00AD:  BCF    20.4
133
00AE:  MOVF   20,W
134
00AF:  BSF    03.5
135
00B0:  MOVWF  07
136
00B1:  BCF    03.5
137
00B2:  RETURN
138 138
*
139
010C:  MOVLW  08
140
010D:  MOVWF  3E
141
010E:  MOVF   77,W
142
010F:  MOVWF  3F
143
0110:  BSF    20.4
144
0111:  MOVF   20,W
145
0112:  BSF    03.5
146
0113:  MOVWF  07
147
0114:  NOP
148
0115:  BCF    03.5
149
0116:  BSF    20.3
150
0117:  MOVF   20,W
151
0118:  BSF    03.5
152
0119:  MOVWF  07
153
011A:  BCF    03.5
154
011B:  BTFSS  07.3
155
011C:  GOTO   11B
156
011D:  BTFSC  07.4
157
011E:  BSF    03.0
158
011F:  BTFSS  07.4
159
0120:  BCF    03.0
160
0121:  RLF    78,F
139
00EC:  MOVLW  08
140
00ED:  MOVWF  2E
141
00EE:  MOVF   77,W
142
00EF:  MOVWF  2F
143
00F0:  BSF    20.4
144
00F1:  MOVF   20,W
145
00F2:  BSF    03.5
146
00F3:  MOVWF  07
147
00F4:  NOP
148
00F5:  BCF    03.5
149
00F6:  BSF    20.3
150
00F7:  MOVF   20,W
151
00F8:  BSF    03.5
152
00F9:  MOVWF  07
153
00FA:  BCF    03.5
154
00FB:  BTFSS  07.3
155
00FC:  GOTO   0FB
156
00FD:  BTFSC  07.4
157
00FE:  BSF    03.0
158
00FF:  BTFSS  07.4
159
0100:  BCF    03.0
160
0101:  RLF    78,F
161
0102:  NOP
162
0103:  BCF    20.3
163
0104:  MOVF   20,W
164
0105:  BSF    03.5
165
0106:  MOVWF  07
166
0107:  BCF    03.5
167
0108:  BCF    07.3
168
0109:  DECFSZ 2E,F
169
010A:  GOTO   0F0
170
010B:  BSF    20.4
171
010C:  MOVF   20,W
172
010D:  BSF    03.5
173
010E:  MOVWF  07
174
010F:  NOP
175
0110:  BCF    03.5
176
0111:  BCF    07.4
177
0112:  MOVF   2F,W
178
0113:  BTFSC  03.2
179
0114:  GOTO   11A
180
0115:  BCF    20.4
181
0116:  MOVF   20,W
182
0117:  BSF    03.5
183
0118:  MOVWF  07
184
0119:  BCF    03.5
185
011A:  NOP
186
011B:  BSF    20.3
187
011C:  MOVF   20,W
188
011D:  BSF    03.5
189
011E:  MOVWF  07
190
011F:  BCF    03.5
191
0120:  BTFSS  07.3
192
0121:  GOTO   120
161 193
0122:  NOP
162
0123:  BCF    20.3
163
0124:  MOVF   20,W
164
0125:  BSF    03.5
165
0126:  MOVWF  07
166
0127:  BCF    03.5
167
0128:  BCF    07.3
168
0129:  DECFSZ 3E,F
169
012A:  GOTO   110
170
012B:  BSF    20.4
194
0123:  BCF    07.3
195
0124:  BCF    20.3
196
0125:  MOVF   20,W
197
0126:  BSF    03.5
198
0127:  MOVWF  07
199
0128:  NOP
200
0129:  BCF    03.5
201
012A:  BCF    07.4
202
012B:  BCF    20.4
171 203
012C:  MOVF   20,W
172 204
012D:  BSF    03.5
173 205
012E:  MOVWF  07
174
012F:  NOP
175
0130:  BCF    03.5
176
0131:  BCF    07.4
177
0132:  MOVF   3F,W
178
0133:  BTFSC  03.2
179
0134:  GOTO   13A
180
0135:  BCF    20.4
181
0136:  MOVF   20,W
182
0137:  BSF    03.5
183
0138:  MOVWF  07
184
0139:  BCF    03.5
185
013A:  NOP
186
013B:  BSF    20.3
187
013C:  MOVF   20,W
188
013D:  BSF    03.5
189
013E:  MOVWF  07
190
013F:  BCF    03.5
191
0140:  BTFSS  07.3
192
0141:  GOTO   140
193
0142:  NOP
194
0143:  BCF    07.3
195
0144:  BCF    20.3
196
0145:  MOVF   20,W
197
0146:  BSF    03.5
198
0147:  MOVWF  07
199
0148:  NOP
200
0149:  BCF    03.5
201
014A:  BCF    07.4
202
014B:  BCF    20.4
203
014C:  MOVF   20,W
204
014D:  BSF    03.5
205
014E:  MOVWF  07
206
014F:  BCF    03.5
207
0150:  RETURN
208
.................... #use rs232(baud=9600,parity=N,xmit=PIN_C7,rcv=PIN_C6,bits=8) //rcv TXD xmit RXD 
209
*
210
001F:  BCF    20.7
211
0020:  MOVF   20,W
212
0021:  BSF    03.5
213
0022:  MOVWF  07
214
0023:  BCF    03.5
215
0024:  BCF    07.7
216
0025:  MOVLW  08
217
0026:  MOVWF  78
218
0027:  GOTO   028
219
0028:  NOP
220
0029:  BSF    78.7
221
002A:  GOTO   039
222
002B:  BCF    78.7
223
002C:  RRF    40,F
224
002D:  BTFSC  03.0
225
002E:  BSF    07.7
226
002F:  BTFSS  03.0
227
0030:  BCF    07.7
228
0031:  BSF    78.6
229
0032:  GOTO   039
230
0033:  BCF    78.6
231
0034:  DECFSZ 78,F
232
0035:  GOTO   02C
233
0036:  GOTO   037
234
0037:  NOP
235
0038:  BSF    07.7
236
0039:  MOVLW  3F
237
003A:  MOVWF  04
238
003B:  DECFSZ 04,F
239
003C:  GOTO   03B
240
003D:  NOP
241
003E:  BTFSC  78.7
242
003F:  GOTO   02B
243
0040:  BTFSC  78.6
244
0041:  GOTO   033
245
0042:  RETURN
206
012F:  BCF    03.5
207
0130:  RETURN
208
.................... #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8) //rcv TXD xmit RXD 
246 209
....................  
247 210
....................  
248 211
.................... #include "HMC5883L.h" 
......
276 239
.................... { 
277 240
.................... i2c_start(); 
278 241
*
279
00D3:  BSF    20.4
280
00D4:  MOVF   20,W
281
00D5:  BSF    03.5
282
00D6:  MOVWF  07
283
00D7:  NOP
284
00D8:  BCF    03.5
285
00D9:  BSF    20.3
286
00DA:  MOVF   20,W
287
00DB:  BSF    03.5
288
00DC:  MOVWF  07
289
00DD:  NOP
290
00DE:  BCF    03.5
291
00DF:  BCF    07.4
292
00E0:  BCF    20.4
293
00E1:  MOVF   20,W
294
00E2:  BSF    03.5
295
00E3:  MOVWF  07
296
00E4:  NOP
297
00E5:  BCF    03.5
298
00E6:  BCF    07.3
299
00E7:  BCF    20.3
300
00E8:  MOVF   20,W
301
00E9:  BSF    03.5
302
00EA:  MOVWF  07
242
00B3:  BSF    20.4
243
00B4:  MOVF   20,W
244
00B5:  BSF    03.5
245
00B6:  MOVWF  07
246
00B7:  NOP
247
00B8:  BCF    03.5
248
00B9:  BSF    20.3
249
00BA:  MOVF   20,W
250
00BB:  BSF    03.5
251
00BC:  MOVWF  07
252
00BD:  NOP
253
00BE:  BCF    03.5
254
00BF:  BCF    07.4
255
00C0:  BCF    20.4
256
00C1:  MOVF   20,W
257
00C2:  BSF    03.5
258
00C3:  MOVWF  07
259
00C4:  NOP
260
00C5:  BCF    03.5
261
00C6:  BCF    07.3
262
00C7:  BCF    20.3
263
00C8:  MOVF   20,W
264
00C9:  BSF    03.5
265
00CA:  MOVWF  07
303 266
.................... i2c_write(HMC5883L_WRT_ADDR); 
304
00EB:  MOVLW  3C
305
00EC:  BCF    03.5
306
00ED:  MOVWF  3D
307
00EE:  CALL   089
267
00CB:  MOVLW  3C
268
00CC:  BCF    03.5
269
00CD:  MOVWF  2D
270
00CE:  CALL   069
308 271
.................... i2c_write(reg); 
309
00EF:  MOVF   37,W
310
00F0:  MOVWF  3D
311
00F1:  CALL   089
272
00CF:  MOVF   27,W
273
00D0:  MOVWF  2D
274
00D1:  CALL   069
312 275
.................... i2c_write(data); 
313
00F2:  MOVF   38,W
314
00F3:  MOVWF  3D
315
00F4:  CALL   089
276
00D2:  MOVF   28,W
277
00D3:  MOVWF  2D
278
00D4:  CALL   069
316 279
.................... i2c_stop(); 
317
00F5:  BCF    20.4
318
00F6:  MOVF   20,W
319
00F7:  BSF    03.5
320
00F8:  MOVWF  07
321
00F9:  NOP
322
00FA:  BCF    03.5
323
00FB:  BSF    20.3
324
00FC:  MOVF   20,W
325
00FD:  BSF    03.5
326
00FE:  MOVWF  07
327
00FF:  BCF    03.5
328
0100:  BTFSS  07.3
329
0101:  GOTO   100
330
0102:  NOP
331
0103:  GOTO   104
332
0104:  NOP
333
0105:  BSF    20.4
334
0106:  MOVF   20,W
335
0107:  BSF    03.5
336
0108:  MOVWF  07
337
0109:  NOP
280
00D5:  BCF    20.4
281
00D6:  MOVF   20,W
282
00D7:  BSF    03.5
283
00D8:  MOVWF  07
284
00D9:  NOP
285
00DA:  BCF    03.5
286
00DB:  BSF    20.3
287
00DC:  MOVF   20,W
288
00DD:  BSF    03.5
289
00DE:  MOVWF  07
290
00DF:  BCF    03.5
291
00E0:  BTFSS  07.3
292
00E1:  GOTO   0E0
293
00E2:  NOP
294
00E3:  GOTO   0E4
295
00E4:  NOP
296
00E5:  BSF    20.4
297
00E6:  MOVF   20,W
298
00E7:  BSF    03.5
299
00E8:  MOVWF  07
300
00E9:  NOP
338 301
.................... } 
339
010A:  BCF    03.5
340
010B:  RETURN
302
00EA:  BCF    03.5
303
00EB:  RETURN
341 304
....................  
342 305
.................... //------------------------------ 
343 306
.................... int8 hmc5883l_read_reg(int8 reg) 
......
367 330
.................... // from the HMC5883L x,y,z registers. 
368 331
.................... hmc5883l_result compass = {0,0,0}; 
369 332
*
370
0287:  CLRF   21
371
0288:  CLRF   22
372
0289:  CLRF   23
373
028A:  CLRF   24
374
028B:  CLRF   25
375
028C:  CLRF   26
333
0260:  CLRF   21
334
0261:  CLRF   22
335
0262:  CLRF   23
336
0263:  CLRF   24
337
0264:  CLRF   25
338
0265:  CLRF   26
376 339
....................  
377 340
.................... //------------------------------ 
378 341
.................... void hmc5883l_read_data(void) 
......
388 351
....................  
389 352
.................... i2c_start(); 
390 353
*
391
0151:  BSF    20.4
392
0152:  MOVF   20,W
393
0153:  BSF    03.5
394
0154:  MOVWF  07
395
0155:  NOP
396
0156:  BCF    03.5
397
0157:  BSF    20.3
398
0158:  MOVF   20,W
399
0159:  BSF    03.5
400
015A:  MOVWF  07
401
015B:  NOP
402
015C:  BCF    03.5
403
015D:  BCF    07.4
404
015E:  BCF    20.4
405
015F:  MOVF   20,W
406
0160:  BSF    03.5
407
0161:  MOVWF  07
408
0162:  NOP
409
0163:  BCF    03.5
410
0164:  BCF    07.3
411
0165:  BCF    20.3
412
0166:  MOVF   20,W
413
0167:  BSF    03.5
414
0168:  MOVWF  07
354
0131:  BSF    20.4
355
0132:  MOVF   20,W
356
0133:  BSF    03.5
357
0134:  MOVWF  07
358
0135:  NOP
359
0136:  BCF    03.5
360
0137:  BSF    20.3
361
0138:  MOVF   20,W
362
0139:  BSF    03.5
363
013A:  MOVWF  07
364
013B:  NOP
365
013C:  BCF    03.5
366
013D:  BCF    07.4
367
013E:  BCF    20.4
368
013F:  MOVF   20,W
369
0140:  BSF    03.5
370
0141:  MOVWF  07
371
0142:  NOP
372
0143:  BCF    03.5
373
0144:  BCF    07.3
374
0145:  BCF    20.3
375
0146:  MOVF   20,W
376
0147:  BSF    03.5
377
0148:  MOVWF  07
415 378
.................... i2c_write(HMC5883L_WRT_ADDR); 
416
0169:  MOVLW  3C
417
016A:  BCF    03.5
418
016B:  MOVWF  3D
419
016C:  CALL   089
379
0149:  MOVLW  3C
380
014A:  BCF    03.5
381
014B:  MOVWF  2D
382
014C:  CALL   069
420 383
.................... i2c_write(HMC5883L_X_MSB_REG);  // Point to X-msb register 
421
016D:  MOVLW  03
422
016E:  MOVWF  3D
423
016F:  CALL   089
384
014D:  MOVLW  03
385
014E:  MOVWF  2D
386
014F:  CALL   069
424 387
.................... i2c_start(); 
425
0170:  BSF    20.4
426
0171:  MOVF   20,W
427
0172:  BSF    03.5
428
0173:  MOVWF  07
429
0174:  NOP
430
0175:  BCF    03.5
431
0176:  BSF    20.3
432
0177:  MOVF   20,W
433
0178:  BSF    03.5
434
0179:  MOVWF  07
435
017A:  NOP
436
017B:  BCF    03.5
437
017C:  BTFSS  07.3
438
017D:  GOTO   17C
439
017E:  BCF    07.4
440
017F:  BCF    20.4
441
0180:  MOVF   20,W
442
0181:  BSF    03.5
443
0182:  MOVWF  07
444
0183:  NOP
445
0184:  BCF    03.5
446
0185:  BCF    07.3
447
0186:  BCF    20.3
448
0187:  MOVF   20,W
449
0188:  BSF    03.5
450
0189:  MOVWF  07
388
0150:  BSF    20.4
389
0151:  MOVF   20,W
390
0152:  BSF    03.5
391
0153:  MOVWF  07
392
0154:  NOP
393
0155:  BCF    03.5
394
0156:  BSF    20.3
395
0157:  MOVF   20,W
396
0158:  BSF    03.5
397
0159:  MOVWF  07
398
015A:  NOP
399
015B:  BCF    03.5
400
015C:  BTFSS  07.3
401
015D:  GOTO   15C
402
015E:  BCF    07.4
403
015F:  BCF    20.4
404
0160:  MOVF   20,W
405
0161:  BSF    03.5
406
0162:  MOVWF  07
407
0163:  NOP
408
0164:  BCF    03.5
409
0165:  BCF    07.3
410
0166:  BCF    20.3
411
0167:  MOVF   20,W
412
0168:  BSF    03.5
413
0169:  MOVWF  07
451 414
.................... i2c_write(HMC5883L_READ_ADDR); 
452
018A:  MOVLW  3D
453
018B:  BCF    03.5
454
018C:  MOVWF  3D
455
018D:  CALL   089
415
016A:  MOVLW  3D
416
016B:  BCF    03.5
417
016C:  MOVWF  2D
418
016D:  CALL   069
456 419
....................  
457 420
.................... x_msb = i2c_read(); 
458
018E:  MOVLW  01
459
018F:  MOVWF  77
460
0190:  CALL   10C
461
0191:  MOVF   78,W
462
0192:  MOVWF  38
421
016E:  MOVLW  01
422
016F:  MOVWF  77
423
0170:  CALL   0EC
424
0171:  MOVF   78,W
425
0172:  MOVWF  28
463 426
.................... x_lsb = i2c_read(); 
464
0193:  MOVLW  01
465
0194:  MOVWF  77
466
0195:  CALL   10C
467
0196:  MOVF   78,W
468
0197:  MOVWF  37
427
0173:  MOVLW  01
428
0174:  MOVWF  77
429
0175:  CALL   0EC
430
0176:  MOVF   78,W
431
0177:  MOVWF  27
469 432
....................  
470 433
.................... z_msb = i2c_read(); 
471
0198:  MOVLW  01
472
0199:  MOVWF  77
473
019A:  CALL   10C
474
019B:  MOVF   78,W
475
019C:  MOVWF  3C
434
0178:  MOVLW  01
435
0179:  MOVWF  77
436
017A:  CALL   0EC
437
017B:  MOVF   78,W
438
017C:  MOVWF  2C
476 439
.................... z_lsb = i2c_read();    
477
019D:  MOVLW  01
478
019E:  MOVWF  77
479
019F:  CALL   10C
480
01A0:  MOVF   78,W
481
01A1:  MOVWF  3B
440
017D:  MOVLW  01
441
017E:  MOVWF  77
442
017F:  CALL   0EC
443
0180:  MOVF   78,W
444
0181:  MOVWF  2B
482 445
....................  
483 446
.................... y_msb = i2c_read(); 
484
01A2:  MOVLW  01
485
01A3:  MOVWF  77
486
01A4:  CALL   10C
487
01A5:  MOVF   78,W
488
01A6:  MOVWF  3A
447
0182:  MOVLW  01
448
0183:  MOVWF  77
449
0184:  CALL   0EC
450
0185:  MOVF   78,W
451
0186:  MOVWF  2A
489 452
.................... y_lsb = i2c_read(0); // do a NACK on last read 
490
01A7:  CLRF   77
491
01A8:  CALL   10C
492
01A9:  MOVF   78,W
493
01AA:  MOVWF  39
453
0187:  CLRF   77
454
0188:  CALL   0EC
455
0189:  MOVF   78,W
456
018A:  MOVWF  29
494 457
....................  
495 458
.................... i2c_stop(); 
496
01AB:  BCF    20.4
497
01AC:  MOVF   20,W
498
01AD:  BSF    03.5
499
01AE:  MOVWF  07
500
01AF:  NOP
501
01B0:  BCF    03.5
502
01B1:  BSF    20.3
503
01B2:  MOVF   20,W
504
01B3:  BSF    03.5
505
01B4:  MOVWF  07
506
01B5:  BCF    03.5
507
01B6:  BTFSS  07.3
508
01B7:  GOTO   1B6
509
01B8:  NOP
510
01B9:  GOTO   1BA
511
01BA:  NOP
512
01BB:  BSF    20.4
513
01BC:  MOVF   20,W
514
01BD:  BSF    03.5
515
01BE:  MOVWF  07
516
01BF:  NOP
459
018B:  BCF    20.4
460
018C:  MOVF   20,W
461
018D:  BSF    03.5
462
018E:  MOVWF  07
463
018F:  NOP
464
0190:  BCF    03.5
... This diff was truncated because it exceeds the maximum size that can be displayed. :@created_atf1430200458.039624‰3:@expires_in0