Better timing values for responsiveness and less CPU time

This commit is contained in:
Luke
2020-04-25 16:35:37 +12:00
parent 7be66f31e8
commit b821ebe267
4 changed files with 33 additions and 126 deletions

View File

@@ -24,28 +24,29 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut key_colours = KeyColourArray::new();
per_key_led.push(key_colours.clone());
for _ in 0..49 {
*key_colours.key(Key::ROG).0 += 5;
*key_colours.key(Key::L).0 += 5;
*key_colours.key(Key::I).0 += 5;
*key_colours.key(Key::N).0 += 5;
*key_colours.key(Key::U).0 += 5;
*key_colours.key(Key::X).0 += 5;
for _ in 0..29 {
*key_colours.key(Key::ROG).0 += 8;
*key_colours.key(Key::L).0 += 8;
*key_colours.key(Key::I).0 += 8;
*key_colours.key(Key::N).0 += 8;
*key_colours.key(Key::U).0 += 8;
*key_colours.key(Key::X).0 += 8;
per_key_led.push(key_colours.clone());
}
for _ in 0..49 {
*key_colours.key(Key::ROG).0 -= 5;
*key_colours.key(Key::L).0 -= 5;
*key_colours.key(Key::I).0 -= 5;
*key_colours.key(Key::N).0 -= 5;
*key_colours.key(Key::U).0 -= 5;
*key_colours.key(Key::X).0 -= 5;
for _ in 0..29 {
*key_colours.key(Key::ROG).0 -= 8;
*key_colours.key(Key::L).0 -= 8;
*key_colours.key(Key::I).0 -= 8;
*key_colours.key(Key::N).0 -= 8;
*key_colours.key(Key::U).0 -= 8;
*key_colours.key(Key::X).0 -= 8;
per_key_led.push(key_colours.clone());
}
// It takes the EC 20ms to process a single colour block
let time = time::Duration::from_millis(20);
// It takes each interrupt at least 1ms. 10ms to write complete block. Plus any extra
// penalty time such as read waits
let time = time::Duration::from_millis(16); // aim for 60 per second
let row = KeyColourArray::get_init_msg();
let msg =