Hallo zusammen!
Nach einigem Rumprobieren und Ausloten was denn nun möglich ist, und was nicht, habe ich nun also ein solches Makro hinbekommen:
Code:
/// Set the LEDs on the `RobotBase` to the least significant 6 bits of the provided value
pub fn set_leds(value: u8) {
// set LEDs SL1-SL3
set_pins!([c6, c5, c4], value);
// set LEDs SL4-SL6
set_pins!([b0, b1, b7], value >> 3);
}
https://github.com/Pr0gm4n/rust-rp6l...t_base.rs#L132
Das mit den LEDs über mehrere Register hinweg hab ich mir dann nochmal überlegt und befunden, dass mir dazu gar nicht so viele Anwendungsfälle einfallen. Naja, das schöne an der Lösung mit dem Makro ist jedenfalls, dass das alles bereits zur Compile-Zeit übersetzt und entsprechend vom Compiler optimiert werden kann. Ich denke damit bin ich jetzt einfach mal zufrieden.
Den Rest vom heutigen Nachmittag wollte ich gern damit verbringen, mehr von der RP6 Library zu portieren um so weitere Features "freizuschalten".
Grüße aus dem verregneten Zürich,
Roland
Lesezeichen