add breathing
This commit is contained in:
parent
a7cd209989
commit
713f3882a2
2 changed files with 44 additions and 17 deletions
|
|
@ -312,6 +312,7 @@ pub struct App {
|
||||||
interfaces: Interfaces,
|
interfaces: Interfaces,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
use settings::Level;
|
||||||
impl App {
|
impl App {
|
||||||
pub fn new(
|
pub fn new(
|
||||||
config: Config,
|
config: Config,
|
||||||
|
|
@ -396,29 +397,53 @@ impl App {
|
||||||
println!("usb adc service");
|
println!("usb adc service");
|
||||||
}
|
}
|
||||||
if self.timers.led0_timer.need_service() {
|
if self.timers.led0_timer.need_service() {
|
||||||
self.timers.led0_timer.service();
|
let out = match self.settings.brightness {
|
||||||
|
Level::Off => 0,
|
||||||
|
Level::Low => 5,
|
||||||
|
Level::Medium => 25,
|
||||||
|
Level::High => 75,
|
||||||
|
Level::Maximum => {
|
||||||
self.sequences.led0.next();
|
self.sequences.led0.next();
|
||||||
self.services.led0.set_amplitude(
|
self.sequences.led0.get_value() / 6
|
||||||
self.sequences.led0.get_value() / self.settings.brightness.as_brightness_divisor(),
|
}
|
||||||
);
|
};
|
||||||
|
|
||||||
|
self.timers.led0_timer.service();
|
||||||
|
self.services.led0.set_amplitude(out);
|
||||||
// #[cfg(feature = "enable_print")]
|
// #[cfg(feature = "enable_print")]
|
||||||
// println!("led0 sevice {}", self.sequences.led0.get_value());
|
// println!("led0 sevice {}", self.sequences.led0.get_value());
|
||||||
}
|
}
|
||||||
if self.timers.led1_timer.need_service() {
|
if self.timers.led1_timer.need_service() {
|
||||||
self.timers.led1_timer.service();
|
let out = match self.settings.brightness {
|
||||||
|
Level::Off => 0,
|
||||||
|
Level::Low => 5,
|
||||||
|
Level::Medium => 25,
|
||||||
|
Level::High => 75,
|
||||||
|
Level::Maximum => {
|
||||||
self.sequences.led1.next();
|
self.sequences.led1.next();
|
||||||
self.services.led1.set_amplitude(
|
self.sequences.led1.get_value() / 6
|
||||||
self.sequences.led1.get_value() / self.settings.brightness.as_brightness_divisor(),
|
}
|
||||||
);
|
};
|
||||||
|
self.timers.led1_timer.service();
|
||||||
|
self.services.led1.set_amplitude(out);
|
||||||
|
|
||||||
// #[cfg(feature = "enable_print")]
|
// #[cfg(feature = "enable_print")]
|
||||||
// println!("led1 service");
|
// println!("led1 service");
|
||||||
}
|
}
|
||||||
if self.timers.led2_timer.need_service() {
|
if self.timers.led2_timer.need_service() {
|
||||||
self.timers.led2_timer.service();
|
let out = match self.settings.brightness {
|
||||||
|
Level::Off => 0,
|
||||||
|
Level::Low => 5,
|
||||||
|
Level::Medium => 25,
|
||||||
|
Level::High => 75,
|
||||||
|
Level::Maximum => {
|
||||||
self.sequences.led2.next();
|
self.sequences.led2.next();
|
||||||
self.services.led2.set_amplitude(
|
self.sequences.led2.get_value() / 6
|
||||||
self.sequences.led2.get_value() / self.settings.brightness.as_brightness_divisor(),
|
}
|
||||||
);
|
};
|
||||||
|
self.timers.led2_timer.service();
|
||||||
|
self.services.led2.set_amplitude(out);
|
||||||
|
|
||||||
// #[cfg(feature = "enable_print")]
|
// #[cfg(feature = "enable_print")]
|
||||||
// println!("led2 service");
|
// println!("led2 service");
|
||||||
}
|
}
|
||||||
|
|
@ -461,8 +486,7 @@ impl App {
|
||||||
|
|
||||||
if self.services.synth0.need_service() {
|
if self.services.synth0.need_service() {
|
||||||
let out = match self.services.synth0.service() {
|
let out = match self.services.synth0.service() {
|
||||||
Some(value) => value / 10,
|
Some(value) => value / 6 / self.settings.volume.as_volume_divisor(),
|
||||||
// Some(value) => value / self.settings.volume.as_volume_divisor(),
|
|
||||||
None => 0,
|
None => 0,
|
||||||
};
|
};
|
||||||
self.interfaces
|
self.interfaces
|
||||||
|
|
@ -472,7 +496,7 @@ impl App {
|
||||||
|
|
||||||
if self.services.sample_player.need_service() {
|
if self.services.sample_player.need_service() {
|
||||||
self.services.sample_player.service();
|
self.services.sample_player.service();
|
||||||
let out = self.services.sample_player.get_amplitude() / 5;
|
let out = self.services.sample_player.get_amplitude() / 2;
|
||||||
self.interfaces
|
self.interfaces
|
||||||
.pwm_core
|
.pwm_core
|
||||||
.write_amplitude(ch32_hal::timer::Channel::Ch4, out as u8);
|
.write_amplitude(ch32_hal::timer::Channel::Ch4, out as u8);
|
||||||
|
|
@ -541,7 +565,10 @@ impl App {
|
||||||
pub fn coin_detect(&mut self) {
|
pub fn coin_detect(&mut self) {
|
||||||
#[cfg(feature = "enable_print")]
|
#[cfg(feature = "enable_print")]
|
||||||
println!("coin detect");
|
println!("coin detect");
|
||||||
self.services.sample_player.play_sample();
|
// self.services.sample_player.play_sample();
|
||||||
|
self.services
|
||||||
|
.sequencer
|
||||||
|
.play_sequence(&crate::sequences::COIN_CHIRP, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -234,7 +234,7 @@ fn app_main(mut p: hal::Peripherals) -> ! {
|
||||||
|
|
||||||
// coin debouncer (100ms)
|
// coin debouncer (100ms)
|
||||||
let mut sense_coin_input =
|
let mut sense_coin_input =
|
||||||
DebouncedGPIO::new(sense_coin_pin.degrade(), core_config.tick_rate_hz, 100);
|
DebouncedGPIO::new(sense_coin_pin.degrade(), core_config.tick_rate_hz, 20);
|
||||||
// main button debouncer (100ms)
|
// main button debouncer (100ms)
|
||||||
let mut main_btn_input =
|
let mut main_btn_input =
|
||||||
DebouncedGPIO::new(main_btn_pin.degrade(), core_config.tick_rate_hz, 20);
|
DebouncedGPIO::new(main_btn_pin.degrade(), core_config.tick_rate_hz, 20);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue