クロックと時間
このセクションでは、LEDルーレットアプリケーションを再実装します。Led
の抽象化をお返ししますが、
Delay
の抽象化を取り除いていきます。
スターターコードはこちらです。delay
関数は、未実装です。プログラムを実行すると、LEDの点滅が早すぎて、常に点灯しているように見えるでしょう。
#![no_main] #![no_std] use aux9::{entry, switch_hal::OutputSwitch, tim6}; #[inline(never)] fn delay(tim6: &tim6::RegisterBlock, ms: u16) { // 実装して下さい } #[entry] fn main() -> ! { let (leds, rcc, tim6) = aux9::init(); let mut leds = leds.into_array(); // TIMGを実装して下さい let ms = 50; loop { for curr in 0..8 { let next = (curr + 1) % 8; leds[next].on().unwrap(); delay(tim6, ms); leds[curr].off().unwrap(); delay(tim6, ms); } } }