static void sample(void) { uint16_t distance = srf02_get_distance(&dev, TEST_MODE); if (distance != 0xFFFF) { printf("distance = %3i cm\n", distance); } else { printf("Sample failed!\n"); } }
void srf02_start_ranging(uint16_t ranging_mode) { uint32_t distance = 0; while (1) { distance = srf02_get_distance(ranging_mode); if (distance != UINT32_MAX) { switch (ranging_mode) { case SRF02_REAL_RANGING_MODE_CM : printf("distance = %lu cm\n", distance); break; case SRF02_REAL_RANGING_MODE_INCH : printf("distance = %lu inch\n", distance); break; case SRF02_REAL_RANGING_MODE_MICRO_SEC: // dist_m = 0.000172 distance_micro_sec (air) printf("distance = %lu micro_sec\n", distance); break; case SRF02_FAKE_RANGING_MODE_CM: case SRF02_FAKE_RANGING_MODE_INCH: case SRF02_FAKE_RANGING_MODE_MICRO_SEC: printf("distance fake ranging = %lu \n", distance); break; default: printf("distance = %lu cm\n", distance); } hwtimer_wait(HWTIMER_TICKS(50000)); } else { break; } } puts("The SRF02 range sampling is ended!!"); }
int main(void) { int res; puts("SRF02 ultrasonic ranger test application\n"); printf("Initializing SRF02 sensor at I2C_%i... ", TEST_SRF02_I2C); res = srf02_init(&srf02_0, TEST_SRF02_I2C, SRF02_DEFAULT_ADDR, TEST_SRF02_SPEED); if (res < 0) { printf("[Failed]"); return 1; } else { puts("[Ok]\n"); while(1) { uint16_t distance = srf02_get_distance(&srf02_0, TEST_MODE); printf("distance = %i cm\n", distance); vtimer_usleep(SLEEP); } } }
static void sample(void) { uint16_t distance = srf02_get_distance(&dev, TEST_MODE); printf("distance = %3i cm\n", distance); }