# HG changeset patch # User heinrichsweikamp # Date 1317936647 -7200 # Node ID f53aa96ff2f4819a8ab071575a938a7713d3d96c # Parent 8d69c040b9fc8eaa698607b43eae713feed65e53 SPI for sensor in 32MHz diff -r 8d69c040b9fc -r f53aa96ff2f4 code_part1/OSTC_code_asm_part1/alt_wait.asm --- a/code_part1/OSTC_code_asm_part1/alt_wait.asm Mon Oct 03 09:38:20 2011 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,399 +0,0 @@ -; OSTC - diving computer code -; Copyright (C) 2008 HeinrichsWeikamp GbR -; This program is free software: you can redistribute it and/or modify -; it under the terms of the GNU General Public License as published by -; the Free Software Foundation, either version 3 of the License, or -; (at your option) any later version. -; This program is distributed in the hope that it will be useful, -; but WITHOUT ANY WARRANTY; without even the implied warranty of -; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -; GNU General Public License for more details. -; You should have received a copy of the GNU General Public License -; along with this program. If not, see . -; Wait routines -; written by: chsw, info@heinrichsweikamp.com -; written: 01/31/04 -; last updated: 11/05/07 -; known bugs: -; ToDo: - IFDEF Clk_4_MHZ - MESSG "wait_v2i: switched to 4 MHZ operation" - ELSE - IFDEF Clk_8_MHZ - MESSG "wait_v2i: switched to 8 MHZ operation" - ELSE - IFDEF Clk_16_MHZ - MESSG "wait_v2i: switched to 16 MHZ operation" - ELSE - IFDEF Clk_20_MHZ - MESSG "wait_v2i: switched to 20 MHZ operation" - ELSE - ERROR "wait_v2i: Operating Frequency has to be specified by #DEFINE Clk_4_MHZ or Clk_8_MHZ" - ENDIF - ENDIF - ENDIF - IFDEF Clk_16_MHZ -; ========================================================== -; WAIT 10 MICROSECONDS - 16 MHZ -; ========================================================== -WAIT10US macro wait_temp - movlw wait_temp - IFNDEF DEBUG - call WAIT10USX - ENDIF - endm - -WAIT10USX movwf wait_temp - goto JumpIn10us -WAIT10USX2 nop - nop - nop - nop - nop - nop - nop - nop - nop -JumpIn10us: - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - decfsz wait_temp,1 - goto WAIT10USX2 - return -; ========================================================== -; WAIT 1 MILLISECOND - 16 MHZ -; ========================================================== -WAITMS macro waitms_temp - movlw waitms_temp - IFNDEF DEBUG - call WAITMSX - ENDIF - endm -WAITMSX movwf waitms_temp - goto JumpInMSX -WAITMSX2 nop - nop - nop - nop - nop - nop - nop - nop - nop -JumpInMSX: - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - WAIT10US d'99' - decfsz waitms_temp,1 - goto WAITMSX2 - return - ELSE - IFDEF Clk_8_MHZ -; ========================================================== -; WAIT 10 MICROSECONDS - 8 MHZ -; ========================================================== -WAIT10US macro wait_temp - movlw wait_temp - IFNDEF DEBUG - call WAIT10USX - ENDIF - endm -WAIT10USX movwf wait_temp - goto JumpIn10us -WAIT10USX2 nop - nop - nop - nop - nop - nop - nop -JumpIn10us: - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - decfsz wait_temp,1 - goto WAIT10USX2 - return -; ========================================================== -; WAIT 1 MILLISECOND - 8 MHZ -; ========================================================== -WAITMS macro waitms_temp - movlw waitms_temp - IFNDEF DEBUG - call WAITMSX - ENDIF - endm -WAITMSX movwf waitms_temp - goto JumpInMSX - -WAITMSX2 nop - nop - nop - nop - nop - nop - nop -JumpInMSX: - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - WAIT10US d'99' - decfsz waitms_temp,1 - goto WAITMSX2 - return - ELSE - IFDEF Clk_4_MHZ -; ========================================================== -; WAIT 10 MICROSECONDS - 4 MHZ -; ========================================================== -WAIT10US macro wait_temp - movlw wait_temp - IFNDEF DEBUG - call WAIT10USX - ENDIF - endm -WAIT10USX movwf wait_temp - goto JumpIn10us -WAIT10USX2 nop - nop - nop - nop - nop - nop - nop -JumpIn10us: - decfsz wait_temp,1 - goto WAIT10USX2 - return -; ========================================================== -; WAIT 1 MILLISECOND - 4 MHZ -; ========================================================== -WAITMS macro waitms_temp - movlw waitms_temp - IFNDEF DEBUG - call WAITMSX - ENDIF - endm -WAITMSX movwf waitms_temp - goto JumpInMSX - -WAITMSX2 nop - nop - nop - nop - nop - nop - nop -JumpInMSX: - WAIT10US d'99' - decfsz waitms_temp,1 - goto WAITMSX2 - return - ELSE - IFDEF Clk_20_MHZ - ========================================================== -; WAIT 10 MICROSECONDS - 20 MHZ -; ========================================================== -WAIT10US macro wait_temp - movlw wait_temp - IFNDEF DEBUG - call WAIT10USX - ENDIF - endm -WAIT10USX movwf wait_temp - goto JumpIn10us -WAIT10USX2 nop - nop - nop - nop - nop - nop - nop -JumpIn10us: - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - decfsz wait_temp,1 - goto WAIT10USX2 - return -; ========================================================== -; WAIT 1 MILLISECOND - 20 MHZ -; ========================================================== -WAITMS macro waitms_temp - movlw waitms_temp - IFNDEF DEBUG - call WAITMSX - ENDIF - endm -WAITMSX movwf waitms_temp - goto JumpInMSX - -WAITMSX2 nop - nop - nop - nop - nop - nop - nop -JumpInMSX: - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - WAIT10US d'99' - decfsz waitms_temp,1 - goto WAITMSX2 - return - ENDIF - ENDIF - ENDIF - ENDIF - ENDIF - - -wait_one_second: - WAITMS d'250' - WAITMS d'250' - WAITMS d'250' - WAITMS d'250' - return diff -r 8d69c040b9fc -r f53aa96ff2f4 code_part1/OSTC_code_asm_part1/ms5535.asm --- a/code_part1/OSTC_code_asm_part1/ms5535.asm Mon Oct 03 09:38:20 2011 +0200 +++ b/code_part1/OSTC_code_asm_part1/ms5535.asm Thu Oct 06 23:30:47 2011 +0200 @@ -430,8 +430,8 @@ nop nop nop - nop - nop + btfsc OSCCON,4 ; 32MHz Mode? + rcall MS5535A_extra_wait ; Yes bcf sensor_CLK return @@ -443,11 +443,19 @@ nop nop nop - nop - nop + btfsc OSCCON,4 ; 32MHz Mode? + rcall MS5535A_extra_wait ; Yes bcf sensor_CLK return +MS5535A_extra_wait: + nop + nop + nop + nop + nop + return + reset_MS5535A: rcall reset_MS5535A_one ;0 rcall reset_MS5535A_zero @@ -487,8 +495,8 @@ nop nop nop - nop - nop + btfsc OSCCON,4 ; 32MHz Mode? + rcall MS5535A_extra_wait ; Yes bcf sensor_CLK return @@ -498,8 +506,8 @@ nop nop nop - nop - nop + btfsc OSCCON,4 ; 32MHz Mode? + rcall MS5535A_extra_wait ; Yes bcf sensor_CLK btfss sensor_SDI ;MSB first bcf STATUS,C @@ -521,39 +529,39 @@ nop nop nop - nop - nop + btfsc OSCCON,4 ; 32MHz Mode? + rcall MS5535A_extra_wait ; Yes bcf sensor_CLK nop nop nop nop - nop - nop + btfsc OSCCON,4 ; 32MHz Mode? + rcall MS5535A_extra_wait ; Yes bsf sensor_CLK nop nop nop nop - nop - nop + btfsc OSCCON,4 ; 32MHz Mode? + rcall MS5535A_extra_wait ; Yes bcf sensor_CLK nop nop nop nop - nop - nop + btfsc OSCCON,4 ; 32MHz Mode? + rcall MS5535A_extra_wait ; Yes bsf sensor_CLK nop nop nop nop - nop - nop + btfsc OSCCON,4 ; 32MHz Mode? + rcall MS5535A_extra_wait ; Yes bcf sensor_CLK ; now send 8 bytes from isr_temp1 and fill-up with zeros -datenbits: +databits: btfss isr1_temp,7 ;MSB first bcf sensor_SDO btfsc isr1_temp,7 ;MSB first @@ -566,10 +574,10 @@ nop nop nop - nop - nop + btfsc OSCCON,4 ; 32MHz Mode? + rcall MS5535A_extra_wait ; Yes bcf sensor_CLK decfsz clock_count,F - bra datenbits + bra databits return diff -r 8d69c040b9fc -r f53aa96ff2f4 code_part1/OSTC_code_asm_part1/start.asm --- a/code_part1/OSTC_code_asm_part1/start.asm Mon Oct 03 09:38:20 2011 +0200 +++ b/code_part1/OSTC_code_asm_part1/start.asm Thu Oct 06 23:30:47 2011 +0200 @@ -272,7 +272,7 @@ ; Pre-load modes for OC, GF 90/90 and no Aponoe or Gauge. bcf no_deco_customviews ; Clear no-deco-mode-flag movlw d'0' - movff WREG,char_I_deco_model ; Clear Flagbyte + movff WREG,char_I_deco_model ; ZH-L16 ; Load GF values into RAM movlw d'90' movff WREG,char_I_GF_Low_percentage diff -r 8d69c040b9fc -r f53aa96ff2f4 code_part1/OSTC_code_asm_part1/surfmode.asm --- a/code_part1/OSTC_code_asm_part1/surfmode.asm Mon Oct 03 09:38:20 2011 +0200 +++ b/code_part1/OSTC_code_asm_part1/surfmode.asm Thu Oct 06 23:30:47 2011 +0200 @@ -99,6 +99,8 @@ ; Desaturation time needs: ; int_I_pres_surface ; char_I_desaturation_multiplier + movlw d'0' + movff WREG,char_I_deco_model ; ZH-L16 GETCUSTOM8 d'12' ; Desaturation multiplier % movff WREG,char_I_desaturation_multiplier