Mercurial > public > hwos_code
comparison src/ms5541.asm @ 255:ad62dff7739a
add bearing option to compass
| author | heinrichsweikamp |
|---|---|
| date | Mon, 23 Mar 2015 17:07:57 +0100 |
| parents | 39f6c07ce2f6 |
| children | 653a3ab08062 |
comparison
equal
deleted
inserted
replaced
| 254:5fe7aff622f3 | 255:ad62dff7739a |
|---|---|
| 256 movlw b'01010100' ;+3*high as start and 1+low as stop! | 256 movlw b'01010100' ;+3*high as start and 1+low as stop! |
| 257 movwf isr1_temp | 257 movwf isr1_temp |
| 258 movlw d'13' | 258 movlw d'13' |
| 259 rcall send_data_MS5541 | 259 rcall send_data_MS5541 |
| 260 rcall get_2bytes_MS5541 | 260 rcall get_2bytes_MS5541 |
| 261 movff dMSB,W1+1 | 261 movff dMSB,ir_s8_buffer+1 |
| 262 movff dLSB,W1+0 | 262 movff dLSB,ir_s8_buffer+0 |
| 263 | 263 |
| 264 movlw b'01011000' ;+3*high as start and 1+low as stop! | 264 movlw b'01011000' ;+3*high as start and 1+low as stop! |
| 265 movwf isr1_temp | 265 movwf isr1_temp |
| 266 movlw d'13' | 266 movlw d'13' |
| 267 rcall send_data_MS5541 | 267 rcall send_data_MS5541 |
| 268 rcall get_2bytes_MS5541 | 268 rcall get_2bytes_MS5541 |
| 269 movff dMSB,W2+1 | 269 movff dMSB,ir_s8_buffer+3 |
| 270 movff dLSB,W2+0 | 270 movff dLSB,ir_s8_buffer+2 |
| 271 | 271 |
| 272 movlw b'01100100' ;+3*high as start and 1+low as stop! | 272 movlw b'01100100' ;+3*high as start and 1+low as stop! |
| 273 movwf isr1_temp | 273 movwf isr1_temp |
| 274 movlw d'13' | 274 movlw d'13' |
| 275 rcall send_data_MS5541 | 275 rcall send_data_MS5541 |
| 276 rcall get_2bytes_MS5541 | 276 rcall get_2bytes_MS5541 |
| 277 movff dMSB,W3+1 | 277 movff dMSB,ir_s8_buffer+5 |
| 278 movff dLSB,W3+0 | 278 movff dLSB,ir_s8_buffer+4 |
| 279 | 279 |
| 280 movlw b'01101000' ;+3*high as start and 1+low as stop! | 280 movlw b'01101000' ;+3*high as start and 1+low as stop! |
| 281 movwf isr1_temp | 281 movwf isr1_temp |
| 282 movlw d'13' | 282 movlw d'13' |
| 283 rcall send_data_MS5541 | 283 rcall send_data_MS5541 |
| 284 rcall get_2bytes_MS5541 | 284 rcall get_2bytes_MS5541 |
| 285 movff dMSB,W4+1 | 285 movff dMSB,ir_s8_buffer+7 |
| 286 movff dLSB,W4+0 | 286 movff dLSB,ir_s8_buffer+6 |
| 287 | 287 |
| 288 ; calculate C1 (16Bit) | 288 ; calculate C1 (16Bit) |
| 289 movff W1+1, C1+1 | 289 movff ir_s8_buffer+1, C1+1 |
| 290 bcf STATUS,C | 290 bcf STATUS,C |
| 291 rrcf C1+1 | 291 rrcf C1+1 |
| 292 bcf STATUS,C | 292 bcf STATUS,C |
| 293 rrcf C1+1 | 293 rrcf C1+1 |
| 294 bcf STATUS,C | 294 bcf STATUS,C |
| 295 rrcf C1+1 | 295 rrcf C1+1 |
| 296 movff W1+0, C1+0 | 296 movff ir_s8_buffer+0, C1+0 |
| 297 bsf STATUS,C | 297 bsf STATUS,C |
| 298 btfss W1+1,0 | 298 btfss ir_s8_buffer+1,0 |
| 299 bcf STATUS,C | 299 bcf STATUS,C |
| 300 rrcf C1+0 | 300 rrcf C1+0 |
| 301 bsf STATUS,C | 301 bsf STATUS,C |
| 302 btfss W1+1,1 | 302 btfss ir_s8_buffer+1,1 |
| 303 bcf STATUS,C | 303 bcf STATUS,C |
| 304 rrcf C1+0 | 304 rrcf C1+0 |
| 305 bsf STATUS,C | 305 bsf STATUS,C |
| 306 btfss W1+1,2 | 306 btfss ir_s8_buffer+1,2 |
| 307 bcf STATUS,C | 307 bcf STATUS,C |
| 308 rrcf C1+0 | 308 rrcf C1+0 |
| 309 | 309 |
| 310 ; calculate C2 (16Bit) | 310 ; calculate C2 (16Bit) |
| 311 movff W2+0, C2+0 | 311 movff ir_s8_buffer+2, C2+0 |
| 312 bsf STATUS,C | 312 bsf STATUS,C |
| 313 btfss W2+1,0 | 313 btfss ir_s8_buffer+3,0 |
| 314 bcf STATUS,C | 314 bcf STATUS,C |
| 315 rrcf C2+0 | 315 rrcf C2+0 |
| 316 bsf STATUS,C | 316 bsf STATUS,C |
| 317 btfss W2+1,1 | 317 btfss ir_s8_buffer+3,1 |
| 318 bcf STATUS,C | 318 bcf STATUS,C |
| 319 rrcf C2+0 | 319 rrcf C2+0 |
| 320 bsf STATUS,C | 320 bsf STATUS,C |
| 321 btfss W2+1,2 | 321 btfss ir_s8_buffer+3,2 |
| 322 bcf STATUS,C | 322 bcf STATUS,C |
| 323 rrcf C2+0 | 323 rrcf C2+0 |
| 324 bsf STATUS,C | 324 bsf STATUS,C |
| 325 btfss W2+1,3 | 325 btfss ir_s8_buffer+3,3 |
| 326 bcf STATUS,C | 326 bcf STATUS,C |
| 327 rrcf C2+0 | 327 rrcf C2+0 |
| 328 bsf STATUS,C | 328 bsf STATUS,C |
| 329 btfss W2+1,4 | 329 btfss ir_s8_buffer+3,4 |
| 330 bcf STATUS,C | 330 bcf STATUS,C |
| 331 rrcf C2+0 | 331 rrcf C2+0 |
| 332 bsf STATUS,C | 332 bsf STATUS,C |
| 333 btfss W2+1,5 | 333 btfss ir_s8_buffer+3,5 |
| 334 bcf STATUS,C | 334 bcf STATUS,C |
| 335 rrcf C2+0 | 335 rrcf C2+0 |
| 336 | 336 |
| 337 movff W2+1, C2+1 | 337 movff ir_s8_buffer+3, C2+1 |
| 338 bsf STATUS,C | 338 bsf STATUS,C |
| 339 btfss W1+0,0 | 339 btfss ir_s8_buffer+0,0 |
| 340 bcf STATUS,C | 340 bcf STATUS,C |
| 341 rrcf C2+1 | 341 rrcf C2+1 |
| 342 bsf STATUS,C | 342 bsf STATUS,C |
| 343 btfss W1+0,1 | 343 btfss ir_s8_buffer+0,1 |
| 344 bcf STATUS,C | 344 bcf STATUS,C |
| 345 rrcf C2+1 | 345 rrcf C2+1 |
| 346 bsf STATUS,C | 346 bsf STATUS,C |
| 347 btfss W1+0,2 | 347 btfss ir_s8_buffer+0,2 |
| 348 bcf STATUS,C | 348 bcf STATUS,C |
| 349 rrcf C2+1 | 349 rrcf C2+1 |
| 350 bcf STATUS,C | 350 bcf STATUS,C |
| 351 rrcf C2+1 | 351 rrcf C2+1 |
| 352 bcf STATUS,C | 352 bcf STATUS,C |
| 353 rrcf C2+1 | 353 rrcf C2+1 |
| 354 bcf STATUS,C | 354 bcf STATUS,C |
| 355 rrcf C2+1 | 355 rrcf C2+1 |
| 356 | 356 |
| 357 ; calculate C3 (16Bit) | 357 ; calculate C3 (16Bit) |
| 358 movff W3+1,C3+0 | 358 movff ir_s8_buffer+5,C3+0 |
| 359 bsf STATUS,C | 359 bsf STATUS,C |
| 360 btfss W3+0,7 | 360 btfss ir_s8_buffer+4,7 |
| 361 bcf STATUS,C | 361 bcf STATUS,C |
| 362 rlcf C3+0 | 362 rlcf C3+0 |
| 363 bsf STATUS,C | 363 bsf STATUS,C |
| 364 btfss W3+0,6 | 364 btfss ir_s8_buffer+4,6 |
| 365 bcf STATUS,C | 365 bcf STATUS,C |
| 366 rlcf C3+0 | 366 rlcf C3+0 |
| 367 clrf C3+1 | 367 clrf C3+1 |
| 368 btfsc W3+1,7 | 368 btfsc ir_s8_buffer+5,7 |
| 369 bsf C3+1,1 | 369 bsf C3+1,1 |
| 370 btfsc W3+1,6 | 370 btfsc ir_s8_buffer+5,6 |
| 371 bsf C3+1,0 | 371 bsf C3+1,0 |
| 372 | 372 |
| 373 ; calculate C4 (16Bit) | 373 ; calculate C4 (16Bit) |
| 374 movff W4+1,C4+0 | 374 movff ir_s8_buffer+7,C4+0 |
| 375 bsf STATUS,C | 375 bsf STATUS,C |
| 376 btfss W4+0,7 | 376 btfss ir_s8_buffer+6,7 |
| 377 bcf STATUS,C | 377 bcf STATUS,C |
| 378 rlcf C4+0 | 378 rlcf C4+0 |
| 379 clrf C4+1 | 379 clrf C4+1 |
| 380 btfsc W4+1,7 | 380 btfsc ir_s8_buffer+7,7 |
| 381 bsf C4+1,0 | 381 bsf C4+1,0 |
| 382 | 382 |
| 383 ; C4=C4-250 | 383 ; C4=C4-250 |
| 384 movlw LOW(-.250) ; C4 - 250 --> C4 | 384 movlw LOW(-.250) ; C4 - 250 --> C4 |
| 385 addwf C4+0,W | 385 addwf C4+0,W |
| 387 movlw -1 ; HIGH(- .250) is not understood... | 387 movlw -1 ; HIGH(- .250) is not understood... |
| 388 addwfc C4+1,W | 388 addwfc C4+1,W |
| 389 movwf C4+1 | 389 movwf C4+1 |
| 390 | 390 |
| 391 ; calculate C5 (16Bit) | 391 ; calculate C5 (16Bit) |
| 392 movff W3+0,C5+0 | 392 movff ir_s8_buffer+4,C5+0 |
| 393 bcf C5+0,6 | 393 bcf C5+0,6 |
| 394 btfsc W2+0,0 | 394 btfsc ir_s8_buffer+2,0 |
| 395 bsf C5+0,6 | 395 bsf C5+0,6 |
| 396 bcf C5+0,7 | 396 bcf C5+0,7 |
| 397 btfsc W2+0,1 | 397 btfsc ir_s8_buffer+2,1 |
| 398 bsf C5+0,7 | 398 bsf C5+0,7 |
| 399 clrf C5+1 | 399 clrf C5+1 |
| 400 btfsc W2+0,2 | 400 btfsc ir_s8_buffer+2,2 |
| 401 bsf C5+1,0 | 401 bsf C5+1,0 |
| 402 btfsc W2+0,3 | 402 btfsc ir_s8_buffer+2,3 |
| 403 bsf C5+1,1 | 403 bsf C5+1,1 |
| 404 btfsc W2+0,4 | 404 btfsc ir_s8_buffer+2,4 |
| 405 bsf C5+1,2 | 405 bsf C5+1,2 |
| 406 btfsc W2+0,5 | 406 btfsc ir_s8_buffer+2,5 |
| 407 bsf C5+1,3 | 407 bsf C5+1,3 |
| 408 | 408 |
| 409 ; calculate C5 = UT1 | 409 ; calculate C5 = UT1 |
| 410 ; C5 = 8*C5 + 10000 (u16 range 10.000 .. +42.760) | 410 ; C5 = 8*C5 + 10000 (u16 range 10.000 .. +42.760) |
| 411 clrf isr_xA+1 | 411 clrf isr_xA+1 |
| 421 movlw HIGH d'10000' | 421 movlw HIGH d'10000' |
| 422 addwfc C5+1,F ; = 8*C5 + 10000 | 422 addwfc C5+1,F ; = 8*C5 + 10000 |
| 423 | 423 |
| 424 ; calculate C6 (16Bit) | 424 ; calculate C6 (16Bit) |
| 425 clrf C6+1 | 425 clrf C6+1 |
| 426 movff W4+0,C6+0 | 426 movff ir_s8_buffer+6,C6+0 |
| 427 bcf C6+0,7 | 427 bcf C6+0,7 |
| 428 | 428 |
| 429 banksel common | 429 banksel common |
| 430 bcf no_sensor_int ; enable sensor interrupts | 430 bcf no_sensor_int ; enable sensor interrupts |
| 431 bcf pressure_refresh ; Clear flag | 431 bcf pressure_refresh ; Clear flag |
