Hello World for Ticker

Fork of Ticker_HelloWorld by Mbed

Use

Ticker is an interrupt driven time interrupt. A ticker works like a kitchen timer, you set it up to tick down from some value in seconds, when it reaches 0 it calls a callback function, then resets the ticker and starts the whole process over again. A ticker can be used to cause periodic events, like blinking an LED on and Off at a certain rate. A tickers maximum time it can handle is 30min, for anything greater consider using the real time clock functionality. In this example LED1 is controlled by the main while look, while LED2 is controlled by the Ticker callback function.

API

API reference.

Import library

Public Member Functions

void  attach (Callback< void()> func, float t)
  Attach a function to be called by the Ticker , specifiying the interval in seconds.
template<typename T , typename M >
  MBED_DEPRECATED_SINCE ("mbed-os-5.1","The attach function does not support cv-qualifiers. Replaced by ""attach(callback(obj, method), t).") void attach(T *obj
  Attach a member function to be called by the Ticker , specifiying the interval in seconds.

Static Public Member Functions

static void  irq (uint32_t id)
  The handler registered with the underlying timer interrupt.

Protected Attributes

us_timestamp_t   _delay
  Time delay (in microseconds) for re-setting the multi-shot callback.
Callback< void()>  _function
  Callback.

main.cpp

Committer:
mab5449
Date:
8 months ago
Revision:
3:5dc3a82c48f6
Parent:
0:5014bf742e9b

File content as of revision 3:5dc3a82c48f6:

/* mbed Example Program
 * Copyright (c) 2006-2014 ARM Limited
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
#include "mbed.h"
 
Ticker flipper;
DigitalOut led1(LED1);
DigitalOut led2(LED2);
 
void flip() {
    led2 = !led2;
}
 
int main() {
    led2 = 1;
    flipper.attach(&flip, 2.0); // the address of the function to be attached (flip) and the interval (2 seconds)
 
    // spin in a main loop. flipper will interrupt it to call flip
    while(1) {
        led1 = !led1;
        wait(0.2);
    }
}