Struct capsules_extra::pwm::Pwm

source ·
pub struct Pwm<'a, const NUM_PINS: usize> { /* private fields */ }

Implementations§

source§

impl<'a, const NUM_PINS: usize> Pwm<'a, NUM_PINS>

source

pub fn new( pwm_pins: &'a [&'a dyn PwmPin; NUM_PINS], grant: Grant<App, UpcallCount<1>, AllowRoCount<0>, AllowRwCount<0>>, ) -> Pwm<'a, NUM_PINS>

source

pub fn claim_pin(&self, processid: ProcessId, pin: usize) -> bool

source

pub fn release_pin(&self, pin: usize)

Trait Implementations§

source§

impl<'a, const NUM_PINS: usize> SyscallDriver for Pwm<'a, NUM_PINS>

Provide an interface for userland.

source§

fn command( &self, command_num: usize, data1: usize, data2: usize, processid: ProcessId, ) -> CommandReturn

Command interface.

§command_num
  • 0: Driver existence check.
  • 1: Start the PWM pin output. First 16 bits of data1 are used for the duty cycle, as a percentage with 2 decimals, and the last 16 bits of data1 are used for the PWM channel to be controlled. data2 is used for the frequency in hertz. For the duty cycle, 100% is the max duty cycle for this pin.
  • 2: Stop the PWM output.
  • 3: Return the maximum possible frequency for this pin.
  • 4: Return number of PWM pins if this driver is included on the platform.
source§

fn allocate_grant(&self, processid: ProcessId) -> Result<(), Error>

Request to allocate a capsule’s grant for a specific process. Read more
source§

fn allow_userspace_readable( &self, app: ProcessId, which: usize, slice: ReadWriteProcessBuffer, ) -> Result<ReadWriteProcessBuffer, (ReadWriteProcessBuffer, ErrorCode)>

System call for a process to pass a buffer (a UserspaceReadableProcessBuffer) to the kernel that the kernel can either read or write. The kernel calls this method only after it checks that the entire buffer is within memory the process can both read and write. Read more

Auto Trait Implementations§

§

impl<'a, const NUM_PINS: usize> !Freeze for Pwm<'a, NUM_PINS>

§

impl<'a, const NUM_PINS: usize> !RefUnwindSafe for Pwm<'a, NUM_PINS>

§

impl<'a, const NUM_PINS: usize> !Send for Pwm<'a, NUM_PINS>

§

impl<'a, const NUM_PINS: usize> !Sync for Pwm<'a, NUM_PINS>

§

impl<'a, const NUM_PINS: usize> Unpin for Pwm<'a, NUM_PINS>

§

impl<'a, const NUM_PINS: usize> !UnwindSafe for Pwm<'a, NUM_PINS>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.