lpc8xx_hal/ctimer/
mod.rs

1//! API for the CTIMER peripheral
2//!
3//! Currently, only PWM output functionality is implemented.
4//!
5//! # Example
6//!
7//! ```no_run
8//! use lpc8xx_hal::{
9//!     delay::Delay,
10//!     prelude::*,
11//!     Peripherals,
12//!     pac::CorePeripherals,
13//! };
14//!
15//! let cp = CorePeripherals::take().unwrap();
16//! let p = Peripherals::take().unwrap();
17//!
18//! let swm = p.SWM.split();
19//! let mut delay = Delay::new(cp.SYST);
20//! let mut syscon = p.SYSCON.split();
21//!
22//! let mut swm_handle = swm.handle.enable(&mut syscon.handle);
23//!
24//! let pwm_output = p.pins.pio1_2.into_swm_pin();
25//!
26//! let (pwm_output, _) = swm.movable_functions.t0_mat0.assign(
27//!     pwm_output,
28//!     &mut swm_handle,
29//! );
30//!
31//! // Use 8 bit pwm
32//! let ctimer = p.CTIMER0
33//!     .enable(256, 0, &mut syscon.handle)
34//!     .attach(pwm_output);
35//!
36//! let mut pwm_pin = ctimer.channels.channel1;
37//! loop {
38//!     for i in 0..pwm_pin.get_max_duty() {
39//!         delay.delay_ms(4_u8);
40//!         pwm_pin.set_duty(i);
41//!     }
42//! }
43//! ```
44
45pub mod channel;
46
47mod gen;
48mod peripheral;
49
50pub use self::{
51    channel::Channel,
52    gen::*,
53    peripheral::{Channels1, Channels12, Channels123, CTIMER},
54};