Skip to content
Snippets Groups Projects
Commit 3c8351ea authored by Samuel Tardieu's avatar Samuel Tardieu
Browse files

Use thread mode mutex now that I²C doesn't run in interrupt mode anymore

parent 98ef95c1
No related branches found
No related tags found
No related merge requests found
......@@ -2,10 +2,10 @@ use embassy_stm32::{
gpio::{Level, Output, Speed},
peripherals::PB15,
};
use embassy_sync::{blocking_mutex::raw::CriticalSectionRawMutex, signal::Signal};
use embassy_sync::{blocking_mutex::raw::ThreadModeRawMutex, signal::Signal};
use embassy_time::Timer;
static BLINK_PATTERN: Signal<CriticalSectionRawMutex, &'static str> = Signal::new();
static BLINK_PATTERN: Signal<ThreadModeRawMutex, &'static str> = Signal::new();
pub fn set_blink_pattern(pattern: &'static str) {
BLINK_PATTERN.signal(pattern);
......
use crate::tb6612fng::{Movement, Tb6612fng};
use core::sync::atomic::{AtomicU16, AtomicU32, AtomicU8, Ordering};
use embassy_stm32::time::{hz, Hertz};
use embassy_sync::{blocking_mutex::raw::CriticalSectionRawMutex, channel::Channel};
use embassy_sync::{blocking_mutex::raw::ThreadModeRawMutex, channel::Channel};
const STANDBY: u8 = 0x80;
const STANDBY_BOTH: u16 = ((STANDBY as u16) << 8) | STANDBY as u16;
......@@ -56,7 +56,7 @@ pub fn get_pwm_frequency() -> Hertz {
// - two regular motor commands
// - one standby command sent by I²C
// - one standby command sent by the software watchdog
static MOTOR_CONTROL: Channel<CriticalSectionRawMutex, MotorCommand, 4> = Channel::new();
static MOTOR_CONTROL: Channel<ThreadModeRawMutex, MotorCommand, 4> = Channel::new();
#[embassy_executor::task]
#[allow(clippy::cast_possible_wrap)]
......
use super::motor_control;
use core::sync::atomic::{AtomicU8, Ordering};
use embassy_stm32::pac::{self, wwdg::vals::Wdgtb};
use embassy_sync::{blocking_mutex::raw::CriticalSectionRawMutex, signal::Signal};
use embassy_sync::{blocking_mutex::raw::ThreadModeRawMutex, signal::Signal};
use embassy_time::{Duration, Instant, Ticker};
static WATCHDOG_PING: Signal<CriticalSectionRawMutex, Instant> = Signal::new();
static WATCHDOG_PING: Signal<ThreadModeRawMutex, Instant> = Signal::new();
static WATCHDOG_TICKS: AtomicU8 = AtomicU8::new(5);
pub fn ping() {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment