Press ← or → to navigate between chapters
Press S or / to search in the book
Press ? to show this help
Press Esc to hide this help
これで、課題に立ち向かうための準備は万端です!あなたのタスクは、この章の冒頭でお見せした アプリケーションを実装することです。
ここで何が起きているのかよくわからない場合は、かなり遅くしたバージョンがあります。 LED ピンを個別に扱うのはかなり面倒なので (特に今回のように実質的にそのほとんどすべてを使わなければならない場合は) BSP が提供する display API を使うことができます。使い方は次のとおりです。 #![deny(unsafe_code)] #![no_main] #![no_std] use cortex_m_rt::entry; use rtt_target::rtt_init_print; use panic_rtt_target as _; use microbit::{ board::Board, display::blocking::Display, hal::{prelude::*, Timer}, }; #[entry] fn main() -> ! { rtt_init_print!(); let board = Board::take().unwrap(); let mut timer = Timer::new(board.TIMER0); let mut display = Display::new(board.display_pins); let light_it_all = [ [1, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 1], ]; loop { // light_it_all を 1000ms 表示する display.show(&mut timer, light_it_all, 1000); // ディスプレイを再びクリアする display.clear(); timer.delay_ms(1000_u32); } } この API を使えば、あなたのタスクは基本的に、適切な 画像マトリクスを計算してそれを BSP に渡すだけです。
ここで何が起きているのかよくわからない場合は、かなり遅くしたバージョンがあります。
LED ピンを個別に扱うのはかなり面倒なので (特に今回のように実質的にそのほとんどすべてを使わなければならない場合は) BSP が提供する display API を使うことができます。使い方は次のとおりです。 #![deny(unsafe_code)] #![no_main] #![no_std] use cortex_m_rt::entry; use rtt_target::rtt_init_print; use panic_rtt_target as _; use microbit::{ board::Board, display::blocking::Display, hal::{prelude::*, Timer}, }; #[entry] fn main() -> ! { rtt_init_print!(); let board = Board::take().unwrap(); let mut timer = Timer::new(board.TIMER0); let mut display = Display::new(board.display_pins); let light_it_all = [ [1, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 1], ]; loop { // light_it_all を 1000ms 表示する display.show(&mut timer, light_it_all, 1000); // ディスプレイを再びクリアする display.clear(); timer.delay_ms(1000_u32); } } この API を使えば、あなたのタスクは基本的に、適切な 画像マトリクスを計算してそれを BSP に渡すだけです。
LED ピンを個別に扱うのはかなり面倒なので (特に今回のように実質的にそのほとんどすべてを使わなければならない場合は) BSP が提供する display API を使うことができます。使い方は次のとおりです。
#![deny(unsafe_code)] #![no_main] #![no_std] use cortex_m_rt::entry; use rtt_target::rtt_init_print; use panic_rtt_target as _; use microbit::{ board::Board, display::blocking::Display, hal::{prelude::*, Timer}, }; #[entry] fn main() -> ! { rtt_init_print!(); let board = Board::take().unwrap(); let mut timer = Timer::new(board.TIMER0); let mut display = Display::new(board.display_pins); let light_it_all = [ [1, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 1], ]; loop { // light_it_all を 1000ms 表示する display.show(&mut timer, light_it_all, 1000); // ディスプレイを再びクリアする display.clear(); timer.delay_ms(1000_u32); } }
この API を使えば、あなたのタスクは基本的に、適切な 画像マトリクスを計算してそれを BSP に渡すだけです。