basic pid controller working???
This commit is contained in:
parent
290d157d4c
commit
e897d25b09
2 changed files with 24 additions and 14 deletions
|
|
@ -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() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue