| Crates.io | avr-q |
| lib.rs | avr-q |
| version | 1.0.0 |
| created_at | 2025-10-29 20:10:18.139679+00 |
| updated_at | 2025-10-29 20:10:18.139679+00 |
| description | Fixed point arithmetic for AVR |
| homepage | https://bues.ch/ |
| repository | https://github.com/mbuesch/avr-q |
| max_upload_size | |
| id | 1907312 |
| size | 57,944 |
This library provides fixed-point arithmetic types for AVR microcontrollers.
Q7p8).Q15p8).curveipo feature for curve interpolation.Add this to your Cargo.toml:
[dependencies]
avr-q = "1"
use avr_q::{q7p8, Q7p8};
// From an integer
let a = q7p8!(const 5);
assert_eq!(a.to_int(), 5);
// From a fraction
let b = q7p8!(const 1 / 2); // 0.5
let c = q7p8!(const 10 / 3); // 3.33...
// From variables
let numerator = 10_i16;
let denominator = 3_i16;
let d = q7p8!(numerator / denominator);
use avr_q::{q7p8, Q7p8};
let a = q7p8!(const 1 / 2); // 0.5
let b = q7p8!(const 1 / 4); // 0.25
let sum = a + b;
assert_eq!(sum, q7p8!(const 3 / 4)); // 0.75
let diff = a - b;
assert_eq!(diff, q7p8!(const 1 / 4)); // 0.25
let prod = a * b;
assert_eq!(prod, q7p8!(const 1 / 8)); // 0.125
let quot = a / b;
assert_eq!(quot, q7p8!(const 2)); // 2.0
let neg = -a;
assert_eq!(neg, q7p8!(const -1 / 2));
let abs = neg.abs();
assert_eq!(abs, q7p8!(const 1 / 2));
This project is licensed under either of
at your option.