22.3.3.1.7 Single-Shot Mode
The Single-Shot mode can be used to generate a pulse with a duration defined by the Compare (TCBn.CCMP) register, every time a rising or falling edge is observed on a connected event channel.
This mode requires TCB to be configured as an event user and is explained in the Events section.
When the counter is stopped, the output pin is set low. If an event is detected
on the connected event channel, the timer will reset and start counting from
BOTTOM to TOP while driving its output high. The RUN bit in the Status
(TCBn.STATUS) register can be read to see if the counter is counting or not.
When CNT reaches the CCMP register value, the counter will stop, and the
output pin will go low for at least one counter clock cycle (TCB_CLK), and a
new event arriving during this time will be ignored. After this, there is a
delay of two peripheral clock cycles (PER_CLK) from when a new event is
received until the output is set high.When the EDGE bit of the TCB.EVCTRL
register is written to ‘1
’, any edge can trigger the start
of counter. If the EDGE bit is ‘0
’, only positive edges
will trigger the start.
The counter will start counting as soon as the peripheral is
enabled, even without triggering by an event, or if the Event Edge (EDGE)
bit in the Event Control (TCBn.EVCTRL) register is modified while the
peripheral is enabled. This is prevented by writing TOP to the Counter
register. Similar behavior is seen if the Event Edge (EDGE) bit in the Event
Control (TCBn.EVCTRL) register is ‘1
’ while the module is
enabled. Writing TOP to the Counter register prevents this as well.
If the Event Asynchronous (ASYNC) bit in the Control B (TCBn.CTRLB)
register is written to ‘1
’, the timer will react
asynchronously to an incoming event. An edge on the event will immediately
cause the output signal to be set. The counter will still start counting two
clock cycles after the event is received.