48 lines
1.3 KiB
Rust
48 lines
1.3 KiB
Rust
use crate::{
|
|
assets::{ONDERS_ORG, SACRED_CHAO},
|
|
lcd::Lcd,
|
|
};
|
|
use atmega_hal::{clock::MHz8, delay::Delay};
|
|
use embedded_hal::{blocking::delay::DelayMs, spi::FullDuplex};
|
|
use nb::block;
|
|
|
|
pub struct Splash;
|
|
|
|
impl Splash {
|
|
pub fn draw(&self, lcd: &mut Lcd) {
|
|
let mut delay = Delay::<MHz8>::new();
|
|
|
|
for (i, page) in SACRED_CHAO.iter().enumerate() {
|
|
lcd.move_cursor(31, 1 + i as u8);
|
|
|
|
// TODO: This delay fixes issues, try find a better solution
|
|
delay.delay_ms(1_u8);
|
|
lcd.cd.set_high();
|
|
|
|
for segment in page {
|
|
block!(lcd.spi.send(*segment)).unwrap();
|
|
}
|
|
|
|
// TODO: This delay fixes issues, try find a better solution
|
|
delay.delay_ms(1_u8);
|
|
lcd.cd.set_low();
|
|
}
|
|
|
|
for (i, page) in ONDERS_ORG.iter().enumerate() {
|
|
lcd.move_cursor(27, 6 + i as u8);
|
|
|
|
// TODO: This delay fixes issues, try find a better solution
|
|
delay.delay_ms(1_u8);
|
|
lcd.cd.set_high();
|
|
|
|
for segment in page {
|
|
block!(lcd.spi.send(*segment)).unwrap();
|
|
}
|
|
|
|
// TODO: This delay fixes issues, try find a better solution
|
|
delay.delay_ms(1_u8);
|
|
lcd.cd.set_low();
|
|
}
|
|
}
|
|
}
|