Add DMA lidar lite reader.

Change-Id: I8195ff2331029adcdb961b9925f43471cc6b08f9
diff --git a/frc971/wpilib/dma_edge_counting.cc b/frc971/wpilib/dma_edge_counting.cc
index 4cf4440..8ea3071 100644
--- a/frc971/wpilib/dma_edge_counting.cc
+++ b/frc971/wpilib/dma_edge_counting.cc
@@ -24,6 +24,14 @@
   }
 }
 
+void DMAPulseWidthReader::UpdateFromSample(const DMASample &sample) {
+  if (have_prev_sample_ && prev_sample_.Get(input_) && !sample.Get(input_)) {
+    last_width_ = sample.GetTimestamp() - prev_sample_.GetTimestamp();
+  }
+  have_prev_sample_ = true;
+  prev_sample_ = sample;
+}
+
 void DMASynchronizer::CheckDMA() {
   DMASample current_sample;
 
@@ -45,6 +53,7 @@
           }
           return;
         }
+        break;
       case DMA::STATUS_TIMEOUT:
         return;
       case DMA::STATUS_ERROR: