Subversion Repositories ChibiGauge

Rev

Rev 4 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4 Rev 6
Line 29... Line 29...
29
    chprintf(chp,"Range Status: %i : %s\r\n", RangeStatus, buf);
29
    chprintf(chp,"Range Status: %i : %s\r\n", RangeStatus, buf);
30
 
30
 
31
}
31
}
32
 
32
 
33
 
33
 
-
 
34
VL53L0X_Error VL53L0XdeviceSetup(VL53L0X_Dev_t *pMyDevice)
-
 
35
{
-
 
36
VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-
 
37
VL53L0X_RangingMeasurementData_t    RangingMeasurementData;
-
 
38
int i;
-
 
39
uint32_t refSpadCount;
-
 
40
uint8_t isApertureSpads;
-
 
41
uint8_t VhvSettings;
-
 
42
uint8_t PhaseCal;
-
 
43
 
-
 
44
// Initialize Comms
-
 
45
pMyDevice->I2cDevAddr      = 0x29; // chibi-style
-
 
46
pMyDevice->comms_type      =  1;
-
 
47
pMyDevice->comms_speed_khz = 100;
-
 
48
 
-
 
49
// call init anyway
-
 
50
VL53L0X_comms_initialise(0,0);
-
 
51
 
-
 
52
 
-
 
53
if(Status == VL53L0X_ERROR_NONE)
-
 
54
{
-
 
55
    Status = VL53L0X_StaticInit(pMyDevice); // Device Initialization
-
 
56
}
-
 
57
 
-
 
58
if(Status == VL53L0X_ERROR_NONE)
-
 
59
{
-
 
60
    Status = VL53L0X_PerformRefCalibration(pMyDevice,
-
 
61
                &VhvSettings, &PhaseCal); // Device Initialization
-
 
62
}
-
 
63
 
-
 
64
if(Status == VL53L0X_ERROR_NONE)
-
 
65
{
-
 
66
    Status = VL53L0X_PerformRefSpadManagement(pMyDevice,
-
 
67
                &refSpadCount, &isApertureSpads); // Device Initialization
-
 
68
}
-
 
69
 
-
 
70
if(Status == VL53L0X_ERROR_NONE)
-
 
71
{
-
 
72
    // no need to do this when we use VL53L0X_PerformSingleRangingMeasurement
-
 
73
    Status = VL53L0X_SetDeviceMode(pMyDevice, VL53L0X_DEVICEMODE_SINGLE_RANGING); // Setup in single ranging mode
-
 
74
}
-
 
75
 
-
 
76
// Enable/Disable Sigma and Signal check
-
 
77
 
-
 
78
/*   if (Status == VL53L0X_ERROR_NONE) {
-
 
79
    Status = VL53L0X_SetSequenceStepEnable(pMyDevice,VL53L0X_SEQUENCESTEP_DSS, 1);
-
 
80
}*/
-
 
81
 
-
 
82
if (Status == VL53L0X_ERROR_NONE) {
-
 
83
    Status = VL53L0X_SetLimitCheckEnable(pMyDevice,
-
 
84
                VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE, 1);
-
 
85
}
-
 
86
if (Status == VL53L0X_ERROR_NONE) {
-
 
87
    Status = VL53L0X_SetLimitCheckEnable(pMyDevice,
-
 
88
                VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE, 1);
-
 
89
}
-
 
90
 
-
 
91
if (Status == VL53L0X_ERROR_NONE) {
-
 
92
    Status = VL53L0X_SetLimitCheckValue(pMyDevice,
-
 
93
                VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE,
-
 
94
                (FixPoint1616_t)(0.1*65536));
-
 
95
}
-
 
96
if (Status == VL53L0X_ERROR_NONE) {
-
 
97
    Status = VL53L0X_SetLimitCheckValue(pMyDevice,
-
 
98
                VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE,
-
 
99
                (FixPoint1616_t)(60*65536));
-
 
100
}
-
 
101
if (Status == VL53L0X_ERROR_NONE) {
-
 
102
    Status = VL53L0X_SetMeasurementTimingBudgetMicroSeconds(pMyDevice,
-
 
103
                33000);
-
 
104
}
-
 
105
 
-
 
106
if (Status == VL53L0X_ERROR_NONE) {
-
 
107
    Status = VL53L0X_SetVcselPulsePeriod(pMyDevice,
-
 
108
                VL53L0X_VCSEL_PERIOD_PRE_RANGE, 18);
-
 
109
}
-
 
110
if (Status == VL53L0X_ERROR_NONE) {
-
 
111
    Status = VL53L0X_SetVcselPulsePeriod(pMyDevice,
-
 
112
                VL53L0X_VCSEL_PERIOD_FINAL_RANGE, 14);
-
 
113
}
-
 
114
return Status;
-
 
115
 
-
 
116
}
-
 
117
 
-
 
118
 
-
 
119
 
-
 
120
 
34
VL53L0X_Error rangingTest(BaseSequentialStream *chp,VL53L0X_Dev_t *pMyDevice)
121
VL53L0X_Error rangingTest(BaseSequentialStream *chp,VL53L0X_Dev_t *pMyDevice)
35
{
122
{
36
    VL53L0X_Error Status = VL53L0X_ERROR_NONE;
123
    VL53L0X_Error Status = VL53L0X_ERROR_NONE;
37
    VL53L0X_RangingMeasurementData_t    RangingMeasurementData;
124
    VL53L0X_RangingMeasurementData_t    RangingMeasurementData;
38
    int i;
125
    int i;
Line 137... Line 224...
137
        }
224
        }
138
    }
225
    }
139
    return Status;
226
    return Status;
140
}
227
}
141
// make this into a shell command
228
// make this into a shell command
-
 
229
extern void setPause(bool pause);
142
 
230
 
143
void shellLidar(BaseSequentialStream *chp, int argc, char *argv[])
231
void shellLidar(BaseSequentialStream *chp, int argc, char *argv[])
144
{
232
{
145
    VL53L0X_Error Status = VL53L0X_ERROR_NONE;
233
    VL53L0X_Error Status = VL53L0X_ERROR_NONE;
146
    VL53L0X_Dev_t MyDevice;
234
    VL53L0X_Dev_t MyDevice;
Line 151... Line 239...
151
 
239
 
152
    int32_t status_int;
240
    int32_t status_int;
153
    int32_t init_done = 0;
241
    int32_t init_done = 0;
154
    // TCHAR SerialCommStr[MAX_VALUE_NAME];
242
    // TCHAR SerialCommStr[MAX_VALUE_NAME];
155
 
243
 
156
 
-
 
-
 
244
    setPause(true);
157
 
245
 
158
    chprintf(chp,"VL53L0X API Simple Ranging example\r\n\r\n");
246
    chprintf(chp,"VL53L0X API Simple Ranging example\r\n\r\n");
159
//    chprintf(chp,"Press a Key to continue!\r\n\r\n");
247
//    chprintf(chp,"Press a Key to continue!\r\n\r\n");
160
//    getchar();
248
//    getchar();
161
 
249
 
Line 163... Line 251...
163
    // Initialize Comms
251
    // Initialize Comms
164
    pMyDevice->I2cDevAddr      = 0x29; // chibi-style
252
    pMyDevice->I2cDevAddr      = 0x29; // chibi-style
165
    pMyDevice->comms_type      =  1;
253
    pMyDevice->comms_type      =  1;
166
    pMyDevice->comms_speed_khz = 100;
254
    pMyDevice->comms_speed_khz = 100;
167
 
255
 
168
 
-
 
-
 
256
    // call init anyway
-
 
257
    VL53L0X_comms_initialise(0,0);
169
    /*
258
    /*
170
     * Disable VL53L0X API logging if you want to run at full speed
259
     * Disable VL53L0X API logging if you want to run at full speed
171
     */
260
     */
172
#ifdef VL53L0X_LOG_ENABLE
261
#ifdef VL53L0X_LOG_ENABLE
173
    VL53L0X_trace_config("test.log", TRACE_MODULE_ALL, TRACE_LEVEL_ALL, TRACE_FUNCTION_ALL);
262
    VL53L0X_trace_config("test.log", TRACE_MODULE_ALL, TRACE_LEVEL_ALL, TRACE_FUNCTION_ALL);
Line 252... Line 341...
252
 
341
 
253
    print_pal_error(chp,Status);
342
    print_pal_error(chp,Status);
254
 
343
 
255
//    chprintf(chp,"\r\nPress a Key to continue!");
344
//    chprintf(chp,"\r\nPress a Key to continue!");
256
//    getchar();
345
//    getchar();
-
 
346
    setPause(false);
257
 
347
 
258
    return (0);
348
    return (0);
259
}
349
}
260
 
350