basic pid controller working???

This commit is contained in:
Robert Schauklies 2026-02-24 21:58:24 +01:00
parent 290d157d4c
commit e897d25b09
2 changed files with 24 additions and 14 deletions

View file

@ -149,8 +149,15 @@ fn decode_bidi_telemetry(pulses: &[PulseCode]) -> Option<u16> {
// Process edges.
// TODO: strip until we find the first negative edge.
assert_eq!(edges[0].0, false);
// assert_eq!(edges[0].0, false);
let mut idx = 0;
for i in 00..edges.len() {
if edges[i].0 == false{
idx = i;
break
}
}
// Approximate. Should be calculated instead, in practice these pulses are
// around 1.34us.
let period = 104u32;
@ -158,7 +165,7 @@ fn decode_bidi_telemetry(pulses: &[PulseCode]) -> Option<u16> {
// Grad middle of each period, find latest applying period. Shitty
// algorithm.
let mut res = [false; 22];
for i in 0..res.len() {
for i in idx..res.len() {
let pos = (i as u32)*period + period/2;
let mut level = edges[0].0;
for edge in edges[..nedges].iter() {