Macro can_bit_timings_proc_macro::can_timings_bxcan [−][src]
can_timings_bxcan!() { /* proc-macro */ }
This macro generates u32
register for bxcan for provided input frequency
and output baudrate.
Inputs:
- required positional argument: input clock frequency in Hertz
- required positional argument: output baudrate in Hertz
- optional named argument midpoint - BS2 segment ratio (default is 0.175)
- optional named argument tolerance - error tolerance (default is 0.5%)
Outputs u32 into the invocation site.
Frequency can be specified as number or as
a method calls (.mhz()
, .khz()
, .hz()
, .bps()
).
Percents are specified as a ratio (from 0 to 1.0)
or as a method call (from 0.pct()
to 100.pct()
)
let timing = can_timings_bxcan!(10.mhz(), 1.mhz()); assert_eq!(timing, 0x70000); let timing = can_timings_bxcan!(10_000_000, 125.khz()); assert_eq!(timing, 0x2f0003); let timing = can_timings_bxcan!(10_000_000, 125.khz(), midpoint=0.275, tolerance=0.1.pct()); assert_eq!(timing, 0x4d0003);