pub struct RTrig {
pub clk: bool,
pub q: bool,
/* private fields */
}Expand description
Rising Edge Trigger (R_TRIG)
Detects a rising edge (false → true transition) on the input signal.
The output q is true for exactly one cycle when the input clk
transitions from false to true.
This is equivalent to the IEC 61131-3 R_TRIG function block.
§Example
use autocore_std::fb::RTrig;
let mut trigger = RTrig::new();
// No edge yet
assert_eq!(trigger.call(false), false);
// Rising edge detected!
assert_eq!(trigger.call(true), true);
// Signal still high, but edge already passed
assert_eq!(trigger.call(true), false);
assert_eq!(trigger.call(true), false);
// Signal goes low
assert_eq!(trigger.call(false), false);
// Another rising edge
assert_eq!(trigger.call(true), true);§Timing Diagram
clk: _____|‾‾‾‾‾‾‾‾‾|_____|‾‾‾‾‾
q: _____|‾|_____________|‾|____§Use Cases
- Detecting button presses (trigger on press, not hold)
- Counting events (increment counter on each rising edge)
- State machine transitions
Fields§
§clk: boolCurrent input value
q: boolOutput: true for one cycle on rising edge
Implementations§
Source§impl RTrig
impl RTrig
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new rising edge trigger with all values initialized to false.
§Example
use autocore_std::fb::RTrig;
let trigger = RTrig::new();
assert_eq!(trigger.q, false);Sourcepub fn call(&mut self, clk: bool) -> bool
pub fn call(&mut self, clk: bool) -> bool
Executes the rising edge detection logic.
Call this method once per control cycle with the current input value.
Returns true for exactly one cycle when a rising edge is detected.
§Arguments
clk- The current state of the input signal
§Returns
true if a rising edge (false → true transition) was detected, false otherwise.
§Example
use autocore_std::fb::RTrig;
let mut trigger = RTrig::new();
let button_pressed = true;
if trigger.call(button_pressed) {
println!("Button was just pressed!");
}Trait Implementations§
Auto Trait Implementations§
impl Freeze for RTrig
impl RefUnwindSafe for RTrig
impl Send for RTrig
impl Sync for RTrig
impl Unpin for RTrig
impl UnsafeUnpin for RTrig
impl UnwindSafe for RTrig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more