diff --git a/src/laser_diode/laser_diode.rs b/src/laser_diode/laser_diode.rs index 79e3b8d..1282778 100644 --- a/src/laser_diode/laser_diode.rs +++ b/src/laser_diode/laser_diode.rs @@ -148,8 +148,8 @@ impl LdDrive{ } pub fn ld_set_i(&mut self, i: ElectricCurrent){ - self.settings.ld_drive_current = i; - LdCurrentOutCtrlTimer::set_target_i_and_listen_irq(i, self.ctrl.get_i_set()); + self.settings.ld_drive_current = i.min(self.settings.ld_drive_current_limit); + LdCurrentOutCtrlTimer::set_target_i_and_listen_irq(self.settings.ld_drive_current, self.ctrl.get_i_set()); } pub fn poll_and_update_output_current(&mut self) -> ElectricCurrent {