Ejemplo n.º 1
0
        // Get sequence step enables
        // based on VL53L0X_GetSequenceStepEnables()
        private void getSequenceStepEnables(out SequenceStepEnables enables)
        {
            var sequence_config = ReadByte((byte)Register.SYSTEM_SEQUENCE_CONFIG);

            enables.tcc         = Convert.ToBoolean((sequence_config >> 4) & 0x1);
            enables.dss         = Convert.ToBoolean((sequence_config >> 3) & 0x1);
            enables.msrc        = Convert.ToBoolean((sequence_config >> 2) & 0x1);
            enables.pre_range   = Convert.ToBoolean((sequence_config >> 6) & 0x1);
            enables.final_range = Convert.ToBoolean((sequence_config >> 7) & 0x1);
        }
Ejemplo n.º 2
0
        // Get sequence step timeouts
        // based on get_sequence_step_timeout(),
        // but gets all timeouts instead of just the requested one, and also stores
        // intermediate values
        private void getSequenceStepTimeouts(ref SequenceStepEnables enables, out SequenceStepTimeouts timeouts)
        {
            timeouts.pre_range_vcsel_period_pclks = this.getVcselPulsePeriod(VcselPeriodType.VcselPeriodPreRange);

            timeouts.msrc_dss_tcc_mclks             = Convert.ToUInt16(this.ReadRegister8Bits((byte)Register.MSRC_CONFIG_TIMEOUT_MACROP) + 1);
            timeouts.msrc_dss_tcc_us                = this.timeoutMclksToMicroseconds(timeouts.msrc_dss_tcc_mclks, Convert.ToByte(timeouts.pre_range_vcsel_period_pclks));
            timeouts.pre_range_mclks                = this.decodeTimeout(this.ReadRegister16Bits((byte)Register.PRE_RANGE_CONFIG_TIMEOUT_MACROP_HI));
            timeouts.pre_range_us                   = this.timeoutMclksToMicroseconds(timeouts.pre_range_mclks, Convert.ToByte(timeouts.pre_range_vcsel_period_pclks));
            timeouts.final_range_vcsel_period_pclks = this.getVcselPulsePeriod(VcselPeriodType.VcselPeriodFinalRange);
            timeouts.final_range_mclks              = this.decodeTimeout(this.ReadRegister16Bits((byte)Register.FINAL_RANGE_CONFIG_TIMEOUT_MACROP_HI));
            if (enables.pre_range)
            {
                timeouts.final_range_mclks -= timeouts.pre_range_mclks;
            }
            timeouts.final_range_us = this.timeoutMclksToMicroseconds(timeouts.final_range_mclks, Convert.ToByte(timeouts.final_range_vcsel_period_pclks));
        }