o: ActiveSupport::Cache::Entry :@compressedF:@value"\ž"Už
| main.esym | ||
|---|---|---|
| 1 |
C L "MAIN" 0 20 1 "FUNCTION" |
|
| 2 |
D G "__PCM__" 0 73 ""4.106"" |
|
| 3 |
D G "__DEVICE__" 0 73 "887" |
|
| 4 |
D G "__DATE__" 0 73 ""15-V-13"" |
|
| 5 |
D G "__TIME__" 0 73 ""20:34:15"" "Standard Header file for the PIC16F887 device ////////////////" |
|
| 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 ////////////////" |
|
| 6 | 5 |
d G "PIN_A0" 2 20 "40" |
| 7 | 6 |
d G "PIN_A1" 2 21 "41" |
| 8 | 7 |
d G "PIN_A2" 2 22 "42" |
| ... | ... | |
| 274 | 273 |
d G "INT_RB5" 2 418 "0x0200B08" |
| 275 | 274 |
d G "INT_RB6" 2 419 "0x0400B08" |
| 276 | 275 |
d G "INT_RB7" 2 420 "0x0800B08" |
| 277 |
D G "MAG_ADDR_R" 3 1 "0x3D" "addresa pro cteni" |
|
| 278 |
D G "MAG_ADDR_W" 3 2 "0x3C" |
|
| 279 |
D G "MAG_ROZ088" 3 7 "0x00" |
|
| 280 |
D G "MAG_ROZ130" 3 8 "0x20" |
|
| 281 |
D G "MAG_ROZ190" 3 9 "0x40" |
|
| 282 |
D G "MAG_ROZ250" 3 10 "0x60" |
|
| 283 |
D G "MAG_ROZ400" 3 11 "0x80" |
|
| 284 |
D G "MAG_ROZ470" 3 12 "0xA0" |
|
| 285 |
D G "MAG_ROZ560" 3 13 "0xC0" |
|
| 286 |
D G "MAG_ROZ810" 3 14 "0xE0" |
|
| 287 |
D G "HMC5883L_WRT_ADDR" 4 2 "0x3C" |
|
| 288 |
D G "HMC5883L_READ_ADDR" 4 3 "0x3D" |
|
| 289 |
D G "HMC5883L_CFG_A_REG" 4 6 "0x00" |
|
| 290 |
D G "HMC5883L_CFG_B_REG" 4 7 "0x01" |
|
| 291 |
D G "HMC5883L_MODE_REG" 4 8 "0x02" |
|
| 292 |
D G "HMC5883L_X_MSB_REG" 4 9 "0x03" |
|
| 293 |
C L "hmc5883l_write_reg" 4 1 1 "FUNCTION" |
|
| 294 |
F G "hmc5883l_write_reg" 4 14 "void(int8 reg,int8 data)" |
|
| 276 |
D G "HMC5883L_WRT_ADDR" 3 2 "0x3C" |
|
| 277 |
D G "HMC5883L_READ_ADDR" 3 3 "0x3D" |
|
| 278 |
D G "HMC5883L_CFG_A_REG" 3 6 "0x00" |
|
| 279 |
D G "HMC5883L_CFG_B_REG" 3 7 "0x01" |
|
| 280 |
D G "HMC5883L_MODE_REG" 3 8 "0x02" |
|
| 281 |
D G "HMC5883L_X_MSB_REG" 3 9 "0x03" |
|
| 282 |
D G "MAG_ROZ088" 3 13 "0x00" |
|
| 283 |
D G "MAG_ROZ130" 3 14 "0x20" |
|
| 284 |
D G "MAG_ROZ190" 3 15 "0x40" |
|
| 285 |
D G "MAG_ROZ250" 3 16 "0x60" |
|
| 286 |
D G "MAG_ROZ400" 3 17 "0x80" |
|
| 287 |
D G "MAG_ROZ470" 3 18 "0xA0" |
|
| 288 |
D G "MAG_ROZ560" 3 19 "0xC0" |
|
| 289 |
D G "MAG_ROZ810" 3 20 "0xE0" |
|
| 290 |
C L "hmc5883l_write_reg" 4 2 1 "FUNCTION" |
|
| 291 |
F G "hmc5883l_write_reg" 4 4 "void()" |
|
| 292 |
V L "reg" 4 4 "int8" |
|
| 293 |
V L "data" 4 4 "int8" |
|
| 294 |
F G "hmc5883l_read_reg" 4 14 "int8()" |
|
| 295 | 295 |
V L "reg" 4 14 "int8" |
| 296 |
V L "data" 4 14 "int8" |
|
| 297 |
F G "hmc5883l_read_reg" 4 24 "int8(int8 reg)" |
|
| 298 |
V L "reg" 4 24 "int8" |
|
| 299 |
V L "retval" 4 26 "int8" |
|
| 300 |
T G "hmc5883l_result" 4 45 "{sint16 x,sint16 y,sint16 z}" "This global structure holds the values read"
|
|
| 301 |
V G "compass" 4 49 "hmc5883l_result" |
|
| 302 |
F G "hmc5883l_read_data" 4 52 "void()" |
|
| 303 |
V L "x_lsb" 4 54 "int8" |
|
| 304 |
V L "x_msb" 4 55 "int8" |
|
| 305 |
V L "y_lsb" 4 57 "int8" |
|
| 306 |
V L "y_msb" 4 58 "int8" |
|
| 307 |
V L "z_lsb" 4 60 "int8" |
|
| 308 |
V L "z_msb" 4 61 "int8" |
|
| 309 |
C L "hmc5883l_read_data" 4 1 1 "FUNCTION" |
|
| 310 |
C L "hmc5883l_read_data" 4 1 1 "FUNCTION" |
|
| 311 |
C L "hmc5883l_read_data" 4 1 1 "FUNCTION" |
|
| 296 |
V L "retval" 4 16 "int8" |
|
| 297 |
T G "hmc5883l_result" 4 35 "{sint16 x,sint16 y,sint16 z}" "This global structure holds the values read"
|
|
| 298 |
V G "compass" 4 39 "hmc5883l_result" |
|
| 299 |
F G "hmc5883l_read_data" 4 42 "void()" |
|
| 300 |
V L "x_lsb" 4 44 "int8" |
|
| 301 |
V L "x_msb" 4 45 "int8" |
|
| 302 |
V L "y_lsb" 4 47 "int8" |
|
| 303 |
V L "y_msb" 4 48 "int8" |
|
| 304 |
V L "z_lsb" 4 50 "int8" |
|
| 305 |
V L "z_msb" 4 51 "int8" |
|
| 306 |
C L "hmc5883l_read_data" 4 2 1 "FUNCTION" |
|
| 307 |
C L "hmc5883l_read_data" 4 2 1 "FUNCTION" |
|
| 308 |
C L "hmc5883l_read_data" 4 2 1 "FUNCTION" |
|
| 312 | 309 |
D G "MATH_H" 5 21 "" |
| 313 | 310 |
D G "PI" 5 26 "3.1415926535897932" |
| 314 | 311 |
D G "SQRT2" 5 29 "1.4142135623730950" |
| 315 | 312 |
C L "CEIL_FLOOR" 5 2 3 "FUNCTION" |
| 316 |
F G "CEIL_FLOOR" 5 36 "float(float x,int8 n)"
|
|
| 313 |
F G "CEIL_FLOOR" 5 36 "float()" |
|
| 317 | 314 |
V L "x" 5 36 "float" |
| 318 | 315 |
V L "n" 5 36 "int8" |
| 319 | 316 |
V L "y" 5 38 "float" |
| ... | ... | |
| 321 | 318 |
V L "l" 5 39 "int16" |
| 322 | 319 |
V L "s" 5 40 "int1" |
| 323 | 320 |
C L "floor" 5 2 5 "FUNCTION" |
| 324 |
F G "floor" 5 192 "float(float x)"
|
|
| 321 |
F G "floor" 5 192 "float()" |
|
| 325 | 322 |
V L "x" 5 192 "float" |
| 326 | 323 |
C L "ceil" 5 2 5 "FUNCTION" |
| 327 |
F G "ceil" 5 218 "float(float x)"
|
|
| 324 |
F G "ceil" 5 218 "float()" |
|
| 328 | 325 |
V L "x" 5 218 "float" |
| 329 | 326 |
D G "fabs" 5 244 "abs" |
| 330 | 327 |
C L "fmod" 5 2 6 "FUNCTION" |
| 331 |
F G "fmod" 5 256 "float(float x,float y)"
|
|
| 328 |
F G "fmod" 5 256 "float()" |
|
| 332 | 329 |
V L "x" 5 256 "float" |
| 333 | 330 |
V L "y" 5 256 "float" |
| 334 | 331 |
V L "i" 5 258 "float" |
| 335 | 332 |
D G "LN2" 5 319 "0.6931471805599453" |
| 336 | 333 |
V G "pe" 5 321 "float[6]" |
| 337 |
F G "exp" 5 325 "float(float x)"
|
|
| 334 |
F G "exp" 5 325 "float()" |
|
| 338 | 335 |
V L "x" 5 325 "float" |
| 339 | 336 |
V L "y" 5 327 "float" |
| 340 | 337 |
V L "res" 5 327 "float" |
| ... | ... | |
| 345 | 342 |
V G "pl" 5 496 "float[4]" |
| 346 | 343 |
V G "ql" 5 497 "float[4]" |
| 347 | 344 |
C L "log" 5 2 3 "FUNCTION" |
| 348 |
F G "log" 5 505 "float(float x)"
|
|
| 345 |
F G "log" 5 505 "float()" |
|
| 349 | 346 |
V L "x" 5 505 "float" |
| 350 | 347 |
V L "y" 5 507 "float" |
| 351 | 348 |
V L "res" 5 507 "float" |
| ... | ... | |
| 355 | 352 |
C L "log" 5 2 1 "FUNCTION" |
| 356 | 353 |
D G "LN10" 5 729 "2.3025850929940456" |
| 357 | 354 |
C L "log10" 5 2 3 "FUNCTION" |
| 358 |
F G "log10" 5 737 "float(float x)"
|
|
| 355 |
F G "log10" 5 737 "float()" |
|
| 359 | 356 |
V L "x" 5 737 "float" |
| 360 | 357 |
V L "r" 5 739 "float" |
| 361 | 358 |
C L "modf" 5 2 8 "FUNCTION" |
| 362 |
F G "modf" 5 778 "float(float value,*float iptr)"
|
|
| 359 |
F G "modf" 5 778 "float()" |
|
| 363 | 360 |
V L "value" 5 778 "float" |
| 364 | 361 |
V L "iptr" 5 778 "*float" |
| 365 | 362 |
C L "pwr" 5 2 6 "FUNCTION" |
| 366 |
F G "pwr" 5 806 "float(float x,float y)"
|
|
| 363 |
F G "pwr" 5 806 "float()" |
|
| 367 | 364 |
V L "x" 5 806 "float" |
| 368 | 365 |
V L "y" 5 806 "float" |
| 369 | 366 |
C L "pow" 5 2 7 "FUNCTION" |
| 370 |
F G "pow" 5 869 "float(float x,float y)"
|
|
| 367 |
F G "pow" 5 869 "float()" |
|
| 371 | 368 |
V L "x" 5 869 "float" |
| 372 | 369 |
V L "y" 5 869 "float" |
| 373 | 370 |
C L "sqrt" 5 2 5 "FUNCTION" |
| 374 |
F G "sqrt" 5 930 "float(float x)"
|
|
| 371 |
F G "sqrt" 5 930 "float()" |
|
| 375 | 372 |
V L "x" 5 930 "float" |
| 376 | 373 |
V L "y" 5 932 "float" |
| 377 | 374 |
V L "res" 5 932 "float" |
| 378 | 375 |
V L "p" 5 936 "*int8" |
| 379 | 376 |
D G "PI_DIV_BY_TWO" 5 1125 "1.5707963267948966" |
| 380 | 377 |
C L "cos" 5 2 3 "FUNCTION" |
| 381 |
F G "cos" 5 1136 "float(float x)"
|
|
| 378 |
F G "cos" 5 1136 "float()" |
|
| 382 | 379 |
V L "x" 5 1136 "float" |
| 383 | 380 |
V L "y" 5 1138 "float" |
| 384 | 381 |
V L "t" 5 1138 "float" |
| ... | ... | |
| 396 | 393 |
C L "cos" 5 2 1 "FUNCTION" |
| 397 | 394 |
C L "cos" 5 2 1 "FUNCTION" |
| 398 | 395 |
C L "sin" 5 2 5 "FUNCTION" |
| 399 |
F G "sin" 5 1278 "float(float x)"
|
|
| 396 |
F G "sin" 5 1278 "float()" |
|
| 400 | 397 |
V L "x" 5 1278 "float" |
| 401 | 398 |
C L "tan" 5 2 5 "FUNCTION" |
| 402 |
F G "tan" 5 1304 "float(float x)"
|
|
| 399 |
F G "tan" 5 1304 "float()" |
|
| 403 | 400 |
V L "x" 5 1304 "float" |
| 404 | 401 |
V L "c" 5 1306 "float" |
| 405 | 402 |
V L "s" 5 1306 "float" |
| 406 | 403 |
V G "pas" 5 1344 "float[3]" |
| 407 | 404 |
V G "qas" 5 1345 "float[3]" |
| 408 |
F G "ASIN_COS" 5 1347 "float(float x,int8 n)"
|
|
| 405 |
F G "ASIN_COS" 5 1347 "float()" |
|
| 409 | 406 |
V L "x" 5 1347 "float" |
| 410 | 407 |
V L "n" 5 1347 "int8" |
| 411 | 408 |
V L "y" 5 1349 "float" |
| ... | ... | |
| 416 | 413 |
C L "ASIN_COS" 5 2 1 "FUNCTION" |
| 417 | 414 |
C L "ASIN_COS" 5 2 1 "FUNCTION" |
| 418 | 415 |
C L "asin" 5 2 5 "FUNCTION" |
| 419 |
F G "asin" 5 1493 "float(float x)"
|
|
| 416 |
F G "asin" 5 1493 "float()" |
|
| 420 | 417 |
V L "x" 5 1493 "float" |
| 421 | 418 |
V L "r" 5 1495 "float" |
| 422 | 419 |
C L "acos" 5 2 5 "FUNCTION" |
| 423 |
F G "acos" 5 1527 "float(float x)"
|
|
| 420 |
F G "acos" 5 1527 "float()" |
|
| 424 | 421 |
V L "x" 5 1527 "float" |
| 425 | 422 |
V L "r" 5 1529 "float" |
| 426 | 423 |
V G "pat" 5 1555 "float[4]" |
| 427 | 424 |
V G "qat" 5 1556 "float[4]" |
| 428 | 425 |
C L "atan" 5 2 3 "FUNCTION" |
| 429 |
F G "atan" 5 1564 "float(float x)"
|
|
| 426 |
F G "atan" 5 1564 "float()" |
|
| 430 | 427 |
V L "x" 5 1564 "float" |
| 431 | 428 |
V L "y" 5 1566 "float" |
| 432 | 429 |
V L "res" 5 1566 "float" |
| ... | ... | |
| 435 | 432 |
V L "flag" 5 1567 "int1" |
| 436 | 433 |
C L "atan" 5 2 1 "FUNCTION" |
| 437 | 434 |
C L "atan2" 5 2 7 "FUNCTION" |
| 438 |
F G "atan2" 5 1697 "float(float y,float x)"
|
|
| 435 |
F G "atan2" 5 1697 "float()" |
|
| 439 | 436 |
V L "y" 5 1697 "float" |
| 440 | 437 |
V L "x" 5 1697 "float" |
| 441 | 438 |
V L "z" 5 1699 "float" |
| ... | ... | |
| 444 | 441 |
C L "atan2" 5 2 1 "FUNCTION" |
| 445 | 442 |
C L "atan2" 5 2 1 "FUNCTION" |
| 446 | 443 |
C L "cosh" 5 2 7 "FUNCTION" |
| 447 |
F G "cosh" 5 1919 "float(float x)"
|
|
| 444 |
F G "cosh" 5 1919 "float()" |
|
| 448 | 445 |
V L "x" 5 1919 "float" |
| 449 | 446 |
C L "sinh" 5 2 6 "FUNCTION" |
| 450 |
F G "sinh" 5 1946 "float(float x)"
|
|
| 447 |
F G "sinh" 5 1946 "float()" |
|
| 451 | 448 |
V L "x" 5 1946 "float" |
| 452 | 449 |
C L "tanh" 5 2 6 "FUNCTION" |
| 453 |
F G "tanh" 5 1976 "float(float x)"
|
|
| 450 |
F G "tanh" 5 1976 "float()" |
|
| 454 | 451 |
V L "x" 5 1976 "float" |
| 455 | 452 |
D G "LOG2" 5 2006 ".30102999566398119521" |
| 456 |
F G "frexp" 5 2007 "float(float x,*sint8 exp)"
|
|
| 453 |
F G "frexp" 5 2007 "float()" |
|
| 457 | 454 |
V L "x" 5 2007 "float" |
| 458 | 455 |
V L "exp" 5 2007 "*sint8" |
| 459 | 456 |
V L "res" 5 2009 "float" |
| 460 | 457 |
V L "sign" 5 2010 "int1" |
| 461 | 458 |
C L "ldexp" 5 2 6 "FUNCTION" |
| 462 |
F G "ldexp" 5 2152 "float(float value,sint8 exp)"
|
|
| 459 |
F G "ldexp" 5 2152 "float()" |
|
| 463 | 460 |
V L "value" 5 2152 "float" |
| 464 | 461 |
V L "exp" 5 2152 "sint8" |
| 465 | 462 |
C L "MAIN" 5 2 2 "FUNCTION" |
| ... | ... | |
| 469 | 466 |
V L "anemo_speed" 0 7 "float" |
| 470 | 467 |
V L "anemo_round" 0 8 "int16" |
| 471 | 468 |
V L "i" 0 9 "int16" "signed int16 X,Y,Z;" |
| 472 |
C L "MAIN" 0 20 3 "FUNCTION" |
|
| 473 |
C L "MAIN" 0 20 1 "FUNCTION" |
|
| 474 |
C L "MAIN" 0 20 1 "FUNCTION" |
|
| 475 |
C L "MAIN" 0 20 2 "FUNCTION" |
|
| 476 |
C L "MAIN" 0 20 6 "FUNCTION" |
|
| 477 |
C L "MAIN" 0 20 1 "FUNCTION" |
|
| 478 |
C L "MAIN" 0 20 7 "FUNCTION" |
|
| 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" |
|
| 479 | 474 |
F B "reset_cpu" 0 0 |
| 480 | 475 |
F B "abs" 1 0 |
| 481 | 476 |
F B "sleep_ulpwu" 1 0 |
| main.pjt | ||
|---|---|---|
| 17 | 17 |
0=0000 %S 0 0 796 451 3 0 |
| 18 | 18 |
[Opened Files] |
| 19 | 19 |
1=main.c |
| 20 |
2=HMC5883L.c |
|
| 21 |
3=main.h |
|
| 22 |
4=C:\Program Files (x86)\PICC\devices\16F887.h |
|
| 23 |
5=HMC5883L.h |
|
| 24 |
6= |
|
| 20 |
2= |
|
| 21 |
3=C:\Program Files (x86)\PICC\devices\16F887.h |
|
| 22 |
4=HMC5883L.h |
|
| 23 |
5=HMC5883L.c |
|
| 24 |
6=C:\Program Files (x86)\PICC\drivers\math.h |
|
| 25 |
7= |
|
| 25 | 26 |
[Target Data] |
| 26 | 27 |
OptionString=-p +FM |
| 27 | 28 |
FileList=Z:\home\kaklik\svnMLAB\Modules\Sensors\MAG01A\SW\PIC16F887\main.c |
| HMC5883L.h | ||
|---|---|---|
| 1 |
#define MAG_ADDR_R 0x3D //addresa pro cteni |
|
| 2 |
#define MAG_ADDR_W 0x3C |
|
| 1 |
// i2c slave addresses |
|
| 2 |
#define HMC5883L_WRT_ADDR 0x3C |
|
| 3 |
#define HMC5883L_READ_ADDR 0x3D |
|
| 3 | 4 |
|
| 5 |
// Register addresses |
|
| 6 |
#define HMC5883L_CFG_A_REG 0x00 |
|
| 7 |
#define HMC5883L_CFG_B_REG 0x01 |
|
| 8 |
#define HMC5883L_MODE_REG 0x02 |
|
| 9 |
#define HMC5883L_X_MSB_REG 0x03 |
|
| 4 | 10 |
|
| 5 | 11 |
//Konstanty nastavujici rozsah |
| 6 | 12 |
//pro void set_mag_roz (unsigned int8 h) |
| main.c | ||
|---|---|---|
| 8 | 8 |
unsigned int16 anemo_round=0; |
| 9 | 9 |
unsigned int16 i; |
| 10 | 10 |
|
| 11 |
|
|
| 12 | 11 |
//signed int16 X,Y,Z; |
| 13 | 12 |
setup_adc_ports(NO_ANALOGS|VSS_VDD); |
| 14 | 13 |
setup_adc(ADC_CLOCK_DIV_2); |
| ... | ... | |
| 19 | 18 |
setup_ccp1(CCP_OFF); |
| 20 | 19 |
setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard |
| 21 | 20 |
|
| 21 |
printf("Magnetometr: \r\n",);
|
|
| 22 |
printf("(c)mlab JACHO 2013: \r\n",);
|
|
| 23 |
printf("X, Y, Z \r\n",);
|
|
| 24 |
|
|
| 25 |
|
|
| 22 | 26 |
// Init the HMC5883L. Set Mode register for |
| 23 | 27 |
// continuous measurements. |
| 24 | 28 |
hmc5883l_write_reg(HMC5883L_CFG_A_REG, 0x18); // no average, maximal update range |
| ... | ... | |
| 29 | 33 |
// Wait at least 67 ms between reads, re the HMC5883L data sheet. |
| 30 | 34 |
|
| 31 | 35 |
|
| 32 |
printf("Magnetometr: \r\n",);
|
|
| 33 |
printf("(c)mlab JACHO 2013: \r\n",);
|
|
| 34 |
printf("X, Y, Z \r\n",);
|
|
| 35 |
|
|
| 36 |
/* while(true) |
|
| 37 |
{
|
|
| 38 |
X = mag_readX(); |
|
| 39 |
Y = mag_readY(); |
|
| 40 |
Z = mag_readZ(); |
|
| 41 |
printf("%4Ld %4Ld %4Ld \r\n", X, Y, Z);
|
|
| 42 |
Delay_ms(50); |
|
| 43 |
|
|
| 44 |
} |
|
| 45 |
*/ |
|
| 46 |
|
|
| 47 | 36 |
while(TRUE) |
| 48 | 37 |
{
|
| 49 | 38 |
|
| 50 |
// for(i=0;i<=10;i++) |
|
| 51 |
// {
|
|
| 52 |
hmc5883l_read_data(); |
|
| 53 |
|
|
| 54 |
// b = atan2((float)compass.y,(float)compass.x); // vypocet azimutu z kartezskych souradnic |
|
| 55 |
// b = (b/3.141596)*180; // prevod na stupne |
|
| 56 |
// b += 180; |
|
| 57 |
|
|
| 58 |
// anemo_speed += (b-last); |
|
| 59 |
// last=b; |
|
| 60 |
// delay_ms(10); |
|
| 61 |
// } |
|
| 62 |
// anemo_speed=anemo_speed/10; |
|
| 63 |
|
|
| 64 |
printf("%6Ld %6Ld %6Ld \n\r", compass.x, compass.y, compass.z);
|
|
| 65 |
// delay_ms(100); |
|
| 39 |
hmc5883l_read_data(); |
|
| 40 |
printf("%6Ld %6Ld %6Ld \n\r", compass.x, compass.y, compass.z);
|
|
| 41 |
delay_ms(100); |
|
| 66 | 42 |
} |
| 67 | 43 |
|
| 68 | 44 |
} |
| main.lst | ||
|---|---|---|
| 1 |
CCS PCM C Compiler, Version 4.106, 47914 15-V-13 20:34
|
|
| 1 |
CCS PCM C Compiler, Version 4.106, 47914 17-V-13 12:14
|
|
| 2 | 2 |
|
| 3 | 3 |
Filename: Z:\home\kaklik\svnMLAB\Modules\Sensors\MAG01A\SW\PIC16F887\main.lst |
| 4 | 4 |
|
| 5 |
ROM used: 775 words (9%)
|
|
| 5 |
ROM used: 799 words (10%)
|
|
| 6 | 6 |
Largest free fragment is 2048 |
| 7 | 7 |
RAM used: 28 (8%) at main() level |
| 8 | 8 |
38 (10%) worst case |
| ... | ... | |
| 11 | 11 |
* |
| 12 | 12 |
0000: MOVLW 02 |
| 13 | 13 |
0001: MOVWF 0A |
| 14 |
0002: GOTO 24F
|
|
| 14 |
0002: GOTO 266
|
|
| 15 | 15 |
0003: NOP |
| 16 | 16 |
.................... #include "main.h" |
| 17 | 17 |
.................... #include <16F887.h> |
| ... | ... | |
| 36 | 36 |
.................... #FUSES BORV40 //Brownout reset at 4.0V |
| 37 | 37 |
.................... |
| 38 | 38 |
.................... #use delay(clock=8000000) |
| 39 |
.................... #use i2c(master, sda=PIN_C4, scl=PIN_C3) |
|
| 40 | 39 |
* |
| 41 |
001F: MOVLW 08 |
|
| 42 |
0020: MOVWF 78 |
|
| 43 |
0021: NOP |
|
| 44 |
0022: BCF 07.3 |
|
| 45 |
0023: BCF 20.3 |
|
| 46 |
0024: MOVF 20,W |
|
| 47 |
0025: BSF 03.5 |
|
| 48 |
0026: MOVWF 07 |
|
| 49 |
0027: NOP |
|
| 50 |
0028: BCF 03.5 |
|
| 51 |
0029: RLF 3D,F |
|
| 52 |
002A: BCF 07.4 |
|
| 53 |
002B: BTFSS 03.0 |
|
| 54 |
002C: GOTO 033 |
|
| 55 |
002D: BSF 20.4 |
|
| 56 |
002E: MOVF 20,W |
|
| 57 |
002F: BSF 03.5 |
|
| 58 |
0030: MOVWF 07 |
|
| 59 |
0031: GOTO 037 |
|
| 60 |
0032: BCF 03.5 |
|
| 61 |
0033: BCF 20.4 |
|
| 62 |
0034: MOVF 20,W |
|
| 63 |
0035: BSF 03.5 |
|
| 64 |
0036: MOVWF 07 |
|
| 65 |
0037: NOP |
|
| 66 |
0038: BCF 03.5 |
|
| 67 |
0039: BSF 20.3 |
|
| 68 |
003A: MOVF 20,W |
|
| 69 |
003B: BSF 03.5 |
|
| 70 |
003C: MOVWF 07 |
|
| 71 |
003D: BCF 03.5 |
|
| 72 |
003E: BTFSS 07.3 |
|
| 73 |
003F: GOTO 03E |
|
| 74 |
0040: DECFSZ 78,F |
|
| 75 |
0041: GOTO 021 |
|
| 76 |
0042: NOP |
|
| 77 |
0043: BCF 07.3 |
|
| 78 |
0044: BCF 20.3 |
|
| 79 |
0045: MOVF 20,W |
|
| 80 |
0046: BSF 03.5 |
|
| 81 |
0047: MOVWF 07 |
|
| 82 |
0048: NOP |
|
| 83 |
0049: BCF 03.5 |
|
| 84 |
004A: BSF 20.4 |
|
| 85 |
004B: MOVF 20,W |
|
| 86 |
004C: BSF 03.5 |
|
| 87 |
004D: MOVWF 07 |
|
| 88 |
004E: NOP |
|
| 89 |
004F: NOP |
|
| 90 |
0050: BCF 03.5 |
|
| 91 |
0051: BSF 20.3 |
|
| 92 |
0052: MOVF 20,W |
|
| 93 |
0053: BSF 03.5 |
|
| 94 |
0054: MOVWF 07 |
|
| 95 |
0055: BCF 03.5 |
|
| 96 |
0056: BTFSS 07.3 |
|
| 97 |
0057: GOTO 056 |
|
| 98 |
0058: CLRF 78 |
|
| 99 |
0059: NOP |
|
| 100 |
005A: BTFSC 07.4 |
|
| 101 |
005B: BSF 78.0 |
|
| 102 |
005C: BCF 07.3 |
|
| 103 |
005D: BCF 20.3 |
|
| 104 |
005E: MOVF 20,W |
|
| 105 |
005F: BSF 03.5 |
|
| 106 |
0060: MOVWF 07 |
|
| 107 |
0061: BCF 03.5 |
|
| 108 |
0062: BCF 07.4 |
|
| 109 |
0063: BCF 20.4 |
|
| 110 |
0064: MOVF 20,W |
|
| 111 |
0065: BSF 03.5 |
|
| 112 |
0066: MOVWF 07 |
|
| 113 |
0067: BCF 03.5 |
|
| 114 |
0068: RETURN |
|
| 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) |
|
| 62 |
.................... #use i2c(Master,Slow,sda=PIN_C4,scl=PIN_C3) |
|
| 115 | 63 |
* |
| 116 |
010B: MOVLW 08 |
|
| 117 |
010C: MOVWF 3E |
|
| 118 |
010D: MOVF 77,W |
|
| 119 |
010E: MOVWF 3F |
|
| 120 |
010F: BSF 20.4 |
|
| 121 |
0110: MOVF 20,W |
|
| 122 |
0111: BSF 03.5 |
|
| 123 |
0112: MOVWF 07 |
|
| 124 |
0113: NOP |
|
| 125 |
0114: BCF 03.5 |
|
| 126 |
0115: BSF 20.3 |
|
| 127 |
0116: MOVF 20,W |
|
| 128 |
0117: BSF 03.5 |
|
| 129 |
0118: MOVWF 07 |
|
| 130 |
0119: BCF 03.5 |
|
| 131 |
011A: BTFSS 07.3 |
|
| 132 |
011B: GOTO 11A |
|
| 133 |
011C: BTFSC 07.4 |
|
| 134 |
011D: BSF 03.0 |
|
| 135 |
011E: BTFSS 07.4 |
|
| 136 |
011F: BCF 03.0 |
|
| 137 |
0120: RLF 78,F |
|
| 138 |
0121: NOP |
|
| 139 |
0122: BCF 20.3 |
|
| 140 |
0123: MOVF 20,W |
|
| 141 |
0124: BSF 03.5 |
|
| 142 |
0125: MOVWF 07 |
|
| 143 |
0126: BCF 03.5 |
|
| 144 |
0127: BCF 07.3 |
|
| 145 |
0128: DECFSZ 3E,F |
|
| 146 |
0129: GOTO 10F |
|
| 147 |
012A: BSF 20.4 |
|
| 148 |
012B: MOVF 20,W |
|
| 149 |
012C: BSF 03.5 |
|
| 150 |
012D: MOVWF 07 |
|
| 151 |
012E: NOP |
|
| 152 |
012F: BCF 03.5 |
|
| 153 |
0130: BCF 07.4 |
|
| 154 |
0131: MOVF 3F,W |
|
| 155 |
0132: BTFSC 03.2 |
|
| 156 |
0133: GOTO 139 |
|
| 157 |
0134: BCF 20.4 |
|
| 158 |
0135: MOVF 20,W |
|
| 159 |
0136: BSF 03.5 |
|
| 160 |
0137: MOVWF 07 |
|
| 161 |
0138: BCF 03.5 |
|
| 162 |
0139: NOP |
|
| 163 |
013A: BSF 20.3 |
|
| 164 |
013B: MOVF 20,W |
|
| 165 |
013C: BSF 03.5 |
|
| 166 |
013D: MOVWF 07 |
|
| 167 |
013E: BCF 03.5 |
|
| 168 |
013F: BTFSS 07.3 |
|
| 169 |
0140: GOTO 13F |
|
| 170 |
0141: NOP |
|
| 171 |
0142: BCF 07.3 |
|
| 172 |
0143: BCF 20.3 |
|
| 173 |
0144: MOVF 20,W |
|
| 174 |
0145: BSF 03.5 |
|
| 175 |
0146: MOVWF 07 |
|
| 176 |
0147: NOP |
|
| 177 |
0148: BCF 03.5 |
|
| 178 |
0149: BCF 07.4 |
|
| 179 |
014A: BCF 20.4 |
|
| 180 |
014B: MOVF 20,W |
|
| 181 |
014C: BSF 03.5 |
|
| 182 |
014D: MOVWF 07 |
|
| 183 |
014E: BCF 03.5 |
|
| 184 |
014F: RETURN |
|
| 185 |
.................... #use rs232(baud=115200,parity=N,xmit=PIN_C7,rcv=PIN_C6,bits=8) //rcv TXD xmit RXD |
|
| 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 |
|
| 186 | 138 |
* |
| 187 |
00A2: BCF 20.7 |
|
| 188 |
00A3: MOVF 20,W |
|
| 189 |
00A4: BSF 03.5 |
|
| 190 |
00A5: MOVWF 07 |
|
| 191 |
00A6: BCF 03.5 |
|
| 192 |
00A7: BCF 07.7 |
|
| 193 |
00A8: MOVLW 08 |
|
| 194 |
00A9: MOVWF 78 |
|
| 195 |
00AA: GOTO 0AB |
|
| 196 |
00AB: NOP |
|
| 197 |
00AC: BSF 78.7 |
|
| 198 |
00AD: GOTO 0C0 |
|
| 199 |
00AE: BCF 78.7 |
|
| 200 |
00AF: MOVF 40,W |
|
| 201 |
00B0: MOVWF 79 |
|
| 202 |
00B1: RRF 79,F |
|
| 203 |
00B2: BTFSC 03.0 |
|
| 204 |
00B3: BSF 07.7 |
|
| 205 |
00B4: BTFSS 03.0 |
|
| 206 |
00B5: BCF 07.7 |
|
| 207 |
00B6: BSF 78.6 |
|
| 208 |
00B7: GOTO 0C0 |
|
| 209 |
00B8: BCF 78.6 |
|
| 210 |
00B9: DECFSZ 78,F |
|
| 211 |
00BA: GOTO 0B1 |
|
| 212 |
00BB: MOVF 79,W |
|
| 213 |
00BC: MOVWF 40 |
|
| 214 |
00BD: GOTO 0BE |
|
| 215 |
00BE: NOP |
|
| 216 |
00BF: BSF 07.7 |
|
| 217 |
00C0: BTFSC 78.7 |
|
| 218 |
00C1: GOTO 0AE |
|
| 219 |
00C2: BTFSC 78.6 |
|
| 220 |
00C3: GOTO 0B8 |
|
| 221 |
00C4: RETURN |
|
| 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 |
|
| 161 |
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 |
|
| 171 |
012C: MOVF 20,W |
|
| 172 |
012D: BSF 03.5 |
|
| 173 |
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 |
|
| 222 | 246 |
.................... |
| 223 | 247 |
.................... |
| 224 | 248 |
.................... #include "HMC5883L.h" |
| 225 |
.................... #define MAG_ADDR_R 0x3D //addresa pro cteni |
|
| 226 |
.................... #define MAG_ADDR_W 0x3C |
|
| 249 |
.................... // i2c slave addresses |
|
| 250 |
.................... #define HMC5883L_WRT_ADDR 0x3C |
|
| 251 |
.................... #define HMC5883L_READ_ADDR 0x3D |
|
| 227 | 252 |
.................... |
| 253 |
.................... // Register addresses |
|
| 254 |
.................... #define HMC5883L_CFG_A_REG 0x00 |
|
| 255 |
.................... #define HMC5883L_CFG_B_REG 0x01 |
|
| 256 |
.................... #define HMC5883L_MODE_REG 0x02 |
|
| 257 |
.................... #define HMC5883L_X_MSB_REG 0x03 |
|
| 228 | 258 |
.................... |
| 229 | 259 |
.................... //Konstanty nastavujici rozsah |
| 230 | 260 |
.................... //pro void set_mag_roz (unsigned int8 h) |
| ... | ... | |
| 239 | 269 |
.................... |
| 240 | 270 |
.................... |
| 241 | 271 |
.................... #include "HMC5883L.c" |
| 242 |
.................... // i2c slave addresses |
|
| 243 |
.................... #define HMC5883L_WRT_ADDR 0x3C |
|
| 244 |
.................... #define HMC5883L_READ_ADDR 0x3D |
|
| 245 |
.................... |
|
| 246 |
.................... // Register addresses |
|
| 247 |
.................... #define HMC5883L_CFG_A_REG 0x00 |
|
| 248 |
.................... #define HMC5883L_CFG_B_REG 0x01 |
|
| 249 |
.................... #define HMC5883L_MODE_REG 0x02 |
|
| 250 |
.................... #define HMC5883L_X_MSB_REG 0x03 |
|
| 251 |
.................... |
|
| 252 | 272 |
.................... //------------------------------ |
| 253 | 273 |
.................... // Low level routines |
| 254 | 274 |
.................... //------------------------------ |
| ... | ... | |
| 256 | 276 |
.................... {
|
| 257 | 277 |
.................... i2c_start(); |
| 258 | 278 |
* |
| 259 |
0069: BSF 20.4
|
|
| 260 |
006A: MOVF 20,W
|
|
| 261 |
006B: BSF 03.5
|
|
| 262 |
006C: MOVWF 07
|
|
| 263 |
006D: NOP
|
|
| 264 |
006E: BCF 03.5
|
|
| 265 |
006F: BSF 20.3
|
|
| 266 |
0070: MOVF 20,W
|
|
| 267 |
0071: BSF 03.5
|
|
| 268 |
0072: MOVWF 07
|
|
| 269 |
0073: NOP
|
|
| 270 |
0074: BCF 03.5
|
|
| 271 |
0075: BCF 07.4
|
|
| 272 |
0076: BCF 20.4
|
|
| 273 |
0077: MOVF 20,W
|
|
| 274 |
0078: BSF 03.5
|
|
| 275 |
0079: MOVWF 07
|
|
| 276 |
007A: NOP
|
|
| 277 |
007B: BCF 03.5
|
|
| 278 |
007C: BCF 07.3
|
|
| 279 |
007D: BCF 20.3
|
|
| 280 |
007E: MOVF 20,W
|
|
| 281 |
007F: BSF 03.5
|
|
| 282 |
0080: MOVWF 07
|
|
| 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
|
|
| 283 | 303 |
.................... i2c_write(HMC5883L_WRT_ADDR); |
| 284 |
0081: MOVLW 3C
|
|
| 285 |
0082: BCF 03.5
|
|
| 286 |
0083: MOVWF 3D
|
|
| 287 |
0084: CALL 01F
|
|
| 304 |
00EB: MOVLW 3C
|
|
| 305 |
00EC: BCF 03.5
|
|
| 306 |
00ED: MOVWF 3D
|
|
| 307 |
00EE: CALL 089
|
|
| 288 | 308 |
.................... i2c_write(reg); |
| 289 |
0085: MOVF 37,W
|
|
| 290 |
0086: MOVWF 3D
|
|
| 291 |
0087: CALL 01F
|
|
| 309 |
00EF: MOVF 37,W
|
|
| 310 |
00F0: MOVWF 3D
|
|
| 311 |
00F1: CALL 089
|
|
| 292 | 312 |
.................... i2c_write(data); |
| 293 |
0088: MOVF 38,W
|
|
| 294 |
0089: MOVWF 3D
|
|
| 295 |
008A: CALL 01F
|
|
| 313 |
00F2: MOVF 38,W
|
|
| 314 |
00F3: MOVWF 3D
|
|
| 315 |
00F4: CALL 089
|
|
| 296 | 316 |
.................... i2c_stop(); |
| 297 |
008B: BCF 20.4
|
|
| 298 |
008C: MOVF 20,W
|
|
| 299 |
008D: BSF 03.5
|
|
| 300 |
008E: MOVWF 07
|
|
| 301 |
008F: NOP
|
|
| 302 |
0090: BCF 03.5
|
|
| 303 |
0091: BSF 20.3
|
|
| 304 |
0092: MOVF 20,W
|
|
| 305 |
0093: BSF 03.5
|
|
| 306 |
0094: MOVWF 07
|
|
| 307 |
0095: BCF 03.5
|
|
| 308 |
0096: BTFSS 07.3
|
|
| 309 |
0097: GOTO 096
|
|
| 310 |
0098: NOP
|
|
| 311 |
0099: GOTO 09A
|
|
| 312 |
009A: NOP
|
|
| 313 |
009B: BSF 20.4
|
|
| 314 |
009C: MOVF 20,W
|
|
| 315 |
009D: BSF 03.5
|
|
| 316 |
009E: MOVWF 07
|
|
| 317 |
009F: NOP
|
|
| 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
|
|
| 318 | 338 |
.................... } |
| 319 |
00A0: BCF 03.5
|
|
| 320 |
00A1: RETURN
|
|
| 339 |
010A: BCF 03.5
|
|
| 340 |
010B: RETURN
|
|
| 321 | 341 |
.................... |
| 322 | 342 |
.................... //------------------------------ |
| 323 | 343 |
.................... int8 hmc5883l_read_reg(int8 reg) |
| ... | ... | |
| 347 | 367 |
.................... // from the HMC5883L x,y,z registers. |
| 348 | 368 |
.................... hmc5883l_result compass = {0,0,0};
|
| 349 | 369 |
* |
| 350 |
0270: CLRF 21
|
|
| 351 |
0271: CLRF 22
|
|
| 352 |
0272: CLRF 23
|
|
| 353 |
0273: CLRF 24
|
|
| 354 |
0274: CLRF 25
|
|
| 355 |
0275: CLRF 26
|
|
| 370 |
0287: CLRF 21
|
|
| 371 |
0288: CLRF 22
|
|
| 372 |
0289: CLRF 23
|
|
| 373 |
028A: CLRF 24
|
|
| 374 |
028B: CLRF 25
|
|
| 375 |
028C: CLRF 26
|
|
| 356 | 376 |
.................... |
| 357 | 377 |
.................... //------------------------------ |
| 358 | 378 |
.................... void hmc5883l_read_data(void) |
| ... | ... | |
| 368 | 388 |
.................... |
| 369 | 389 |
.................... i2c_start(); |
| 370 | 390 |
* |
| 371 |
0150: BSF 20.4
|
|
| 372 |
0151: MOVF 20,W
|
|
| 373 |
0152: BSF 03.5
|
|
| 374 |
0153: MOVWF 07
|
|
| 375 |
0154: NOP
|
|
| 376 |
0155: BCF 03.5
|
|
| 377 |
0156: BSF 20.3
|
|
| 378 |
0157: MOVF 20,W
|
|
| 379 |
0158: BSF 03.5
|
|
| 380 |
0159: MOVWF 07
|
|
| 381 |
015A: NOP
|
|
| 382 |
015B: BCF 03.5
|
|
| 383 |
015C: BCF 07.4
|
|
| 384 |
015D: BCF 20.4
|
|
| 385 |
015E: MOVF 20,W
|
|
| 386 |
015F: BSF 03.5
|
|
| 387 |
0160: MOVWF 07
|
|
| 388 |
0161: NOP
|
|
| 389 |
0162: BCF 03.5
|
|
| 390 |
0163: BCF 07.3
|
|
| 391 |
0164: BCF 20.3
|
|
| 392 |
0165: MOVF 20,W
|
|
| 393 |
0166: BSF 03.5
|
|
| 394 |
0167: MOVWF 07
|
|
| 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
|
|
| 395 | 415 |
.................... i2c_write(HMC5883L_WRT_ADDR); |
| 396 |
0168: MOVLW 3C
|
|
| 397 |
0169: BCF 03.5
|
|
| 398 |
016A: MOVWF 3D
|
|
| 399 |
016B: CALL 01F
|
|
| 416 |
0169: MOVLW 3C
|
|
| 417 |
016A: BCF 03.5
|
|
| 418 |
016B: MOVWF 3D
|
|
| 419 |
016C: CALL 089
|
|
| 400 | 420 |
.................... i2c_write(HMC5883L_X_MSB_REG); // Point to X-msb register |
| 401 |
016C: MOVLW 03
|
|
| 402 |
016D: MOVWF 3D
|
|
| 403 |
016E: CALL 01F
|
|
| 421 |
016D: MOVLW 03
|
|
| 422 |
016E: MOVWF 3D
|
|
| 423 |
016F: CALL 089
|
|
| 404 | 424 |
.................... i2c_start(); |
| 405 |
016F: BSF 20.4
|
|
| 406 |
0170: MOVF 20,W
|
|
| 407 |
0171: BSF 03.5
|
|
| 408 |
0172: MOVWF 07
|
|
| 409 |
0173: NOP
|
|
| 410 |
0174: BCF 03.5
|
|
| 411 |
0175: BSF 20.3
|
|
| 412 |
0176: MOVF 20,W
|
|
| 413 |
0177: BSF 03.5
|
|
| 414 |
0178: MOVWF 07
|
|
| 415 |
0179: NOP
|
|
| 416 |
017A: BCF 03.5
|
|
| 417 |
017B: BTFSS 07.3
|
|
| 418 |
017C: GOTO 17B
|
|
| 419 |
017D: BCF 07.4
|
|
| 420 |
017E: BCF 20.4
|
|
| 421 |
017F: MOVF 20,W
|
|
| 422 |
0180: BSF 03.5
|
|
| 423 |
0181: MOVWF 07
|
|
| 424 |
0182: NOP
|
|
| 425 |
0183: BCF 03.5
|
|
| 426 |
0184: BCF 07.3
|
|
| 427 |
0185: BCF 20.3
|
|
| 428 |
0186: MOVF 20,W
|
|
| 429 |
0187: BSF 03.5
|
|
| 430 |
0188: MOVWF 07
|
|
| 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
|
|
| 431 | 451 |
.................... i2c_write(HMC5883L_READ_ADDR); |
| 432 |
0189: MOVLW 3D
|
|
| 433 |
018A: BCF 03.5
|
|
| 434 |
018B: MOVWF 3D
|
|
| 435 |
018C: CALL 01F
|
|
| 452 |
018A: MOVLW 3D
|
|
| 453 |
018B: BCF 03.5
|
|
| 454 |
018C: MOVWF 3D
|
|
| 455 |
018D: CALL 089
|
|
| 436 | 456 |
.................... |
| 437 | 457 |
.................... x_msb = i2c_read(); |
| 438 |
018D: MOVLW 01
|
|
| 439 |
018E: MOVWF 77
|
|
| 440 |
018F: CALL 10B
|
|
| 441 |
0190: MOVF 78,W
|
|
| 442 |
0191: MOVWF 38
|
|
| 458 |
018E: MOVLW 01
|
|
| 459 |
018F: MOVWF 77
|
|
| 460 |
0190: CALL 10C
|
|
| 461 |
0191: MOVF 78,W
|
|
| 462 |
0192: MOVWF 38
|
|
| 443 | 463 |
.................... x_lsb = i2c_read(); |
| 444 |
0192: MOVLW 01
|
|
| 445 |
0193: MOVWF 77
|
|
| 446 |
0194: CALL 10B
|
|
| 447 |
0195: MOVF 78,W
|
|
| 448 |
0196: MOVWF 37
|
|
| 464 |
0193: MOVLW 01
|
|
| 465 |
0194: MOVWF 77
|
|
| 466 |
0195: CALL 10C
|
|
| 467 |
0196: MOVF 78,W
|
|
| 468 |
0197: MOVWF 37
|
|
| 449 | 469 |
.................... |
| 450 | 470 |
.................... z_msb = i2c_read(); |
| 451 |
0197: MOVLW 01
|
|
| 452 |
0198: MOVWF 77
|
|
| 453 |
0199: CALL 10B
|
|
| 454 |
019A: MOVF 78,W
|
|
| 455 |
019B: MOVWF 3C
|
|
| 471 |
0198: MOVLW 01
|
|
| 472 |
0199: MOVWF 77
|
|
| 473 |
019A: CALL 10C
|
|
| 474 |
019B: MOVF 78,W
|
|
| 475 |
019C: MOVWF 3C
|
|
| 456 | 476 |
.................... z_lsb = i2c_read(); |
| 457 |
019C: MOVLW 01
|
|
| 458 |
019D: MOVWF 77
|
|
| 459 |
019E: CALL 10B
|
|
| 460 |
019F: MOVF 78,W
|
|
| 461 |
01A0: MOVWF 3B
|
|
| 477 |
019D: MOVLW 01
|
|
| 478 |
019E: MOVWF 77
|
|
| 479 |
019F: CALL 10C
|
|
| 480 |
01A0: MOVF 78,W
|
|
| 481 |
01A1: MOVWF 3B
|
|
| 462 | 482 |
.................... |
| 463 | 483 |
.................... y_msb = i2c_read(); |
| 464 |
01A1: MOVLW 01
|
|
| 465 |
01A2: MOVWF 77
|
|
| 466 |
01A3: CALL 10B
|
|
| 467 |
01A4: MOVF 78,W
|
|
| 468 |
01A5: MOVWF 3A
|
|
| 484 |
01A2: MOVLW 01
|
|
| 485 |
01A3: MOVWF 77
|
|
| 486 |
01A4: CALL 10C
|
|
| 487 |
01A5: MOVF 78,W
|
|
| 488 |
01A6: MOVWF 3A
|
|
| 469 | 489 |
.................... y_lsb = i2c_read(0); // do a NACK on last read |
| 470 |
01A6: CLRF 77
|
|
| 471 |
01A7: CALL 10B
|
|
| 472 |
01A8: MOVF 78,W
|
|
| 473 |
01A9: MOVWF 39
|
|
| 490 |
01A7: CLRF 77
|
|
| 491 |
01A8: CALL 10C
|
|
| 492 |
01A9: MOVF 78,W
|
|
| 493 |
01AA: MOVWF 39
|
|
| 474 | 494 |
.................... |
| 475 | 495 |
.................... i2c_stop(); |
| 476 |
01AA: BCF 20.4
|
|
| 477 |
01AB: MOVF 20,W
|
|
| 478 |
01AC: BSF 03.5
|
|
| 479 |
01AD: MOVWF 07
|
|
| 480 |
01AE: NOP
|
|
| 481 |
01AF: BCF 03.5
|
|
| 482 |
01B0: BSF 20.3
|
|
| 483 |
01B1: MOVF 20,W
|
|
| 484 |
01B2: BSF 03.5
|
|
| 485 |
01B3: MOVWF 07
|
|
| 486 |
01B4: BCF 03.5
|
|
| 487 |
01B5: BTFSS 07.3
|
|
| 488 |
01B6: GOTO 1B5
|
|
| 489 |
01B7: NOP
|
|
| 490 |
01B8: GOTO 1B9
|
|
| 491 |
01B9: NOP
|
|
| 492 |
01BA: BSF 20.4
|
|
| 493 |
01BB: MOVF 20,W
|
|
| 494 |
01BC: BSF 03.5
|
|
| 495 |
01BD: MOVWF 07
|
|
| 496 |
01BE: NOP
|
|
| 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
|
|
| 497 | 517 |
.................... |
| 498 | 518 |
.................... // Combine high and low bytes into 16-bit values. |
| 499 | 519 |
.................... compass.x = make16(x_msb, x_lsb); |
| 500 |
01BF: BCF 03.5
|
|
| 501 |
01C0: MOVF 38,W
|
|
| 502 |
01C1: MOVWF 22
|
|
| 503 |
01C2: MOVF 37,W
|
|
| 504 |
01C3: MOVWF 21
|
|
| 520 |
01C0: BCF 03.5
|
|
| 521 |
01C1: MOVF 38,W
|
|
| 522 |
01C2: MOVWF 22
|
|
| 523 |
01C3: MOVF 37,W
|
|
| 524 |
01C4: MOVWF 21
|
|
| 505 | 525 |
.................... compass.y = make16(y_msb, y_lsb); |
| 506 |
01C4: MOVF 3A,W
|
|
| 507 |
01C5: MOVWF 24
|
|
| 508 |
01C6: MOVF 39,W
|
|
| 509 |
01C7: MOVWF 23
|
|
| 526 |
01C5: MOVF 3A,W
|
|
| 527 |
01C6: MOVWF 24
|
|
| 528 |
01C7: MOVF 39,W
|
|
| 529 |
01C8: MOVWF 23
|
|
| 510 | 530 |
.................... compass.z = make16(z_msb, z_lsb); |
| 511 |
01C8: MOVF 3C,W
|
|
| 512 |
01C9: MOVWF 26
|
|
| 513 |
01CA: MOVF 3B,W
|
|
| 514 |
01CB: MOVWF 25
|
|
| 531 |
01C9: MOVF 3C,W
|
|
| 532 |
01CA: MOVWF 26
|
|
| 533 |
01CB: MOVF 3B,W
|
|
| 534 |
01CC: MOVWF 25
|
|
| 515 | 535 |
.................... } |
| 516 |
01CC: BCF 0A.3
|
|
| 517 |
01CD: BCF 0A.4
|
|
| 518 |
01CE: GOTO 2E1 (RETURN)
|
|
| 536 |
01CD: BCF 0A.3
|
|
| 537 |
01CE: BCF 0A.4
|
|
| 538 |
01CF: GOTO 2F6 (RETURN)
|
|
| 519 | 539 |
.................... |
| 520 | 540 |
.................... |
| 521 | 541 |
.................... |
| ... | ... | |
| 2697 | 2717 |
.................... void main() |
| 2698 | 2718 |
.................... {
|
| 2699 | 2719 |
* |
| 2700 |
024F: CLRF 04
|
|
| 2701 |
0250: BCF 03.7
|
|
| 2702 |
0251: MOVLW 1F
|
|
| 2703 |
0252: ANDWF 03,F
|
|
| 2704 |
0253: MOVLW 71
|
|
| 2705 |
0254: BSF 03.5
|
|
| 2706 |
0255: MOVWF 0F
|
|
| 2707 |
0256: MOVF 0F,W
|
|
| 2708 |
0257: BCF 03.5
|
|
| 2709 |
0258: BCF 20.7
|
|
| 2710 |
0259: MOVF 20,W
|
|
| 2711 |
025A: BSF 03.5
|
|
| 2712 |
025B: MOVWF 07
|
|
| 2713 |
025C: BCF 03.5
|
|
| 2714 |
025D: BSF 07.7
|
|
| 2715 |
025E: BSF 03.5
|
|
| 2716 |
025F: BSF 03.6
|
|
| 2717 |
0260: MOVF 09,W
|
|
| 2718 |
0261: ANDLW C0
|
|
| 2719 |
0262: MOVWF 09
|
|
| 2720 |
0263: BCF 03.6
|
|
| 2721 |
0264: BCF 1F.4
|
|
| 2722 |
0265: BCF 1F.5
|
|
| 2723 |
0266: MOVLW 00
|
|
| 2724 |
0267: BSF 03.6
|
|
| 2725 |
0268: MOVWF 08
|
|
| 2726 |
0269: BCF 03.5
|
|
| 2727 |
026A: CLRF 07
|
|
| 2728 |
026B: CLRF 08
|
|
| 2729 |
026C: CLRF 09
|
|
| 2720 |
0266: CLRF 04
|
|
| 2721 |
0267: BCF 03.7
|
|
| 2722 |
0268: MOVLW 1F
|
|
| 2723 |
0269: ANDWF 03,F
|
|
| 2724 |
026A: MOVLW 71
|
|
| 2725 |
026B: BSF 03.5
|
|
| 2726 |
026C: MOVWF 0F
|
|
| 2727 |
026D: MOVF 0F,W
|
|
| 2728 |
026E: BCF 03.5
|
|
| 2729 |
026F: BCF 20.7
|
|
| 2730 |
0270: MOVF 20,W
|
|
| 2731 |
0271: BSF 03.5
|
|
| 2732 |
0272: MOVWF 07
|
|
| 2733 |
0273: BCF 03.5
|
|
| 2734 |
0274: BSF 07.7
|
|
| 2735 |
0275: BSF 03.5
|
|
| 2736 |
0276: BSF 03.6
|
|
| 2737 |
0277: MOVF 09,W
|
|
| 2738 |
0278: ANDLW C0
|
|
| 2739 |
0279: MOVWF 09
|
|
| 2740 |
027A: BCF 03.6
|
|
| 2741 |
027B: BCF 1F.4
|
|
| 2742 |
027C: BCF 1F.5
|
|
| 2743 |
027D: MOVLW 00
|
|
| 2744 |
027E: BSF 03.6
|
|
| 2745 |
027F: MOVWF 08
|
|
| 2746 |
0280: BCF 03.5
|
|
| 2747 |
0281: CLRF 07
|
|
| 2748 |
0282: CLRF 08
|
|
| 2749 |
0283: CLRF 09
|
|
| 2730 | 2750 |
* |
| 2731 |
0276: CLRF 34
|
|
| 2732 |
0277: CLRF 33
|
|
| 2751 |
028D: CLRF 34
|
|
| 2752 |
028E: CLRF 33
|
|
| 2733 | 2753 |
.................... float last,b,anemo_speed; |
| 2734 | 2754 |
.................... unsigned int16 anemo_round=0; |
| 2735 | 2755 |
.................... unsigned int16 i; |
| 2736 | 2756 |
.................... |
| 2737 |
.................... |
|
| 2738 | 2757 |
.................... //signed int16 X,Y,Z; |
| 2739 | 2758 |
.................... setup_adc_ports(NO_ANALOGS|VSS_VDD); |
| 2740 |
0278: BSF 03.5
|
|
| 2741 |
0279: BSF 03.6
|
|
| 2742 |
027A: MOVF 09,W
|
|
| 2743 |
027B: ANDLW C0
|
|
| 2744 |
027C: MOVWF 09
|
|
| 2745 |
027D: BCF 03.6
|
|
| 2746 |
027E: BCF 1F.4
|
|
| 2747 |
027F: BCF 1F.5
|
|
| 2748 |
0280: MOVLW 00
|
|
| 2749 |
0281: BSF 03.6
|
|
| 2750 |
0282: MOVWF 08
|
|
| 2759 |
028F: BSF 03.5
|
|
| 2760 |
0290: BSF 03.6
|
|
| 2761 |
0291: MOVF 09,W
|
|
| 2762 |
0292: ANDLW C0
|
|
| 2763 |
0293: MOVWF 09
|
|
| 2764 |
0294: BCF 03.6
|
|
| 2765 |
0295: BCF 1F.4
|
|
| 2766 |
0296: BCF 1F.5
|
|
| 2767 |
0297: MOVLW 00
|
|
| 2768 |
0298: BSF 03.6
|
|
| 2769 |
0299: MOVWF 08
|
|
| 2751 | 2770 |
.................... setup_adc(ADC_CLOCK_DIV_2); |
| 2752 |
0283: BCF 03.5
|
|
| 2753 |
0284: BCF 03.6
|
|
| 2754 |
0285: BCF 1F.6
|
|
| 2755 |
0286: BCF 1F.7
|
|
| 2756 |
0287: BSF 03.5
|
|
| 2757 |
0288: BCF 1F.7
|
|
| 2758 |
0289: BCF 03.5
|
|
| 2759 |
028A: BSF 1F.0
|
|
| 2771 |
029A: BCF 03.5
|
|
| 2772 |
029B: BCF 03.6
|
|
| 2773 |
029C: BCF 1F.6
|
|
| 2774 |
029D: BCF 1F.7
|
|
| 2775 |
029E: BSF 03.5
|
|
| 2776 |
029F: BCF 1F.7
|
|
| 2777 |
02A0: BCF 03.5
|
|
| 2778 |
02A1: BSF 1F.0
|
|
| 2760 | 2779 |
.................... setup_spi(SPI_SS_DISABLED); |
| 2761 |
028B: BCF 14.5 |
|
| 2762 |
028C: BCF 20.5 |
|
| 2763 |
028D: MOVF 20,W |
|
| 2764 |
028E: BSF 03.5 |
|
| 2765 |
028F: MOVWF 07 |
|
| 2766 |
0290: BCF 03.5 |
|
| 2767 |
0291: BSF 20.4 |
|
| 2768 |
0292: MOVF 20,W |
|
| 2769 |
0293: BSF 03.5 |
|
| 2770 |
0294: MOVWF 07 |
|
| 2771 |
0295: BCF 03.5 |
|
| 2772 |
0296: BCF 20.3 |
|
| 2773 |
0297: MOVF 20,W |
|
| 2774 |
0298: BSF 03.5 |
|
| 2775 |
0299: MOVWF 07 |
|
| 2776 |
029A: MOVLW 01 |
|
| 2777 |
029B: BCF 03.5 |
|
| 2778 |
029C: MOVWF 14 |
|
| 2779 |
029D: MOVLW 00 |
|
| 2780 |
029E: BSF 03.5 |
|
| 2781 |
029F: MOVWF 14 |
|
| 2782 |
.................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); |
|
| 2783 |
02A0: MOVF 01,W |
|
| 2784 |
02A1: ANDLW C7 |
|
| 2785 |
02A2: IORLW 08 |
|
| 2786 |
02A3: MOVWF 01 |
|
| 2787 |
.................... setup_timer_1(T1_DISABLED); |
|
| 2788 |
02A4: BCF 03.5 |
|
| 2789 |
02A5: CLRF 10 |
|
| 2790 |
.................... setup_timer_2(T2_DISABLED,0,1); |
|
| 2791 |
02A6: MOVLW 00 |
|
| 2792 |
02A7: MOVWF 78 |
|
| 2793 |
02A8: MOVWF 12 |
|
| 2794 |
02A9: MOVLW 00 |
|
| 2780 |
02A2: BCF 14.5 |
|
| 2781 |
02A3: BCF 20.5 |
|
| 2782 |
02A4: MOVF 20,W |
|
| 2783 |
02A5: BSF 03.5 |
|
| 2784 |
02A6: MOVWF 07 |
|
| 2785 |
02A7: BCF 03.5 |
|
| 2786 |
02A8: BSF 20.4 |
|
| 2787 |
02A9: MOVF 20,W |
|
| 2795 | 2788 |
02AA: BSF 03.5 |
| 2796 |
02AB: MOVWF 12 |
|
| 2797 |
.................... setup_ccp1(CCP_OFF); |
|
| 2789 |
02AB: MOVWF 07 |
|
| 2798 | 2790 |
02AC: BCF 03.5 |
| 2799 |
02AD: BSF 20.2
|
|
| 2791 |
02AD: BCF 20.3
|
|
| 2800 | 2792 |
02AE: MOVF 20,W |
| 2801 | 2793 |
02AF: BSF 03.5 |
| 2802 | 2794 |
02B0: MOVWF 07 |
| 2803 |
02B1: BCF 03.5 |
|
| 2804 |
02B2: CLRF 17 |
|
| 2805 |
02B3: BSF 03.5 |
|
| 2806 |
02B4: CLRF 1B |
|
| 2807 |
02B5: CLRF 1C |
|
| 2808 |
02B6: MOVLW 01 |
|
| 2809 |
02B7: MOVWF 1D |
|
| 2795 |
02B1: MOVLW 01 |
|
| 2796 |
02B2: BCF 03.5 |
|
| 2797 |
02B3: MOVWF 14 |
|
| 2798 |
02B4: MOVLW 00 |
|
| 2799 |
02B5: BSF 03.5 |
|
| 2800 |
02B6: MOVWF 14 |
|
| 2801 |
.................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); |
|
| 2802 |
02B7: MOVF 01,W |
|
| 2803 |
02B8: ANDLW C7 |
|
| 2804 |
02B9: IORLW 08 |
|
| 2805 |
02BA: MOVWF 01 |
|
| 2806 |
.................... setup_timer_1(T1_DISABLED); |
|
| 2807 |
02BB: BCF 03.5 |
|
| 2808 |
02BC: CLRF 10 |
|
| 2809 |
.................... setup_timer_2(T2_DISABLED,0,1); |
|
| 2810 |
02BD: MOVLW 00 |
|
| 2811 |
02BE: MOVWF 78 |
|
| 2812 |
02BF: MOVWF 12 |
|
| 2813 |
02C0: MOVLW 00 |
|
| 2814 |
02C1: BSF 03.5 |
|
| 2815 |
02C2: MOVWF 12 |
|
| 2816 |
.................... setup_ccp1(CCP_OFF); |
|
| 2817 |
02C3: BCF 03.5 |
|
| 2818 |
02C4: BSF 20.2 |
|
| 2819 |
02C5: MOVF 20,W |
|
| 2820 |
02C6: BSF 03.5 |
|
| 2821 |
02C7: MOVWF 07 |
|
| 2822 |
02C8: BCF 03.5 |
|
| 2823 |
02C9: CLRF 17 |
|
| 2824 |
02CA: BSF 03.5 |
|
| 2825 |
02CB: CLRF 1B |
|
| 2826 |
02CC: CLRF 1C |
|
| 2827 |
02CD: MOVLW 01 |
|
| 2828 |
02CE: MOVWF 1D |
|
| 2810 | 2829 |
.................... setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard |
| 2811 |
02B8: BCF 03.5
|
|
| 2812 |
02B9: BSF 03.6
|
|
| 2813 |
02BA: CLRF 07
|
|
| 2814 |
02BB: CLRF 08
|
|
| 2815 |
02BC: CLRF 09
|
|
| 2830 |
02CF: BCF 03.5
|
|
| 2831 |
02D0: BSF 03.6
|
|
| 2832 |
02D1: CLRF 07
|
|
| 2833 |
02D2: CLRF 08
|
|
| 2834 |
02D3: CLRF 09
|
|
| 2816 | 2835 |
.................... |
| 2836 |
.................... printf("Magnetometr: \r\n",);
|
|
| 2837 |
02D4: MOVLW 04 |
|
| 2838 |
02D5: MOVWF 0D |
|
| 2839 |
02D6: MOVLW 00 |
|
| 2840 |
02D7: MOVWF 0F |
|
| 2841 |
02D8: BCF 03.6 |
|
| 2842 |
02D9: CALL 043 |
|
| 2843 |
.................... printf("(c)mlab JACHO 2013: \r\n",);
|
|
| 2844 |
02DA: MOVLW 0D |
|
| 2845 |
02DB: BSF 03.6 |
|
| 2846 |
02DC: MOVWF 0D |
|
| 2847 |
02DD: MOVLW 00 |
|
| 2848 |
02DE: MOVWF 0F |
|
| 2849 |
02DF: BCF 03.6 |
|
| 2850 |
02E0: CALL 043 |
|
| 2851 |
.................... printf("X, Y, Z \r\n",);
|
|
| 2852 |
02E1: MOVLW 19 |
|
| 2853 |
02E2: BSF 03.6 |
|
| 2854 |
02E3: MOVWF 0D |
|
| 2855 |
02E4: MOVLW 00 |
|
| 2856 |
02E5: MOVWF 0F |
|
| 2857 |
02E6: BCF 03.6 |
|
| 2858 |
02E7: CALL 043 |
|
| 2859 |
.................... |
|
| 2860 |
.................... |
|
| 2817 | 2861 |
.................... // Init the HMC5883L. Set Mode register for |
| 2818 | 2862 |
.................... // continuous measurements. |
| 2819 | 2863 |
.................... hmc5883l_write_reg(HMC5883L_CFG_A_REG, 0x18); // no average, maximal update range |
| 2820 |
02BD: BCF 03.6 |
|
| 2821 |
02BE: CLRF 37 |
|