Purpose: Simple application example with 3 periodic functions triggered through a event-queue scheduler-object.

Dependencies:   IHM_V2

Fork of mbed-os-example-mbed5-blinky by mbed-os-examples

/media/uploads/jacquesolivierklein/mbed-os-periodic-task.png

Purpose: Simple application example with 3 periodic functions triggered through a event-queue scheduler-object. Target: L432KC / Nboard (from IUT-Cachan) Tested: YES (2019-01-09) Author: Jacques-Olivier Klein - IUT de CACHAN Date: 2018-02-10 rev. 2019-01-09 OS_STACK_SIZE=4096 Libraries: mbed-os rev5345:c966348(03jan2019) + IHMV2 (from IUT-Cachan) rev6:ad91067

main.cpp

Committer:
jacquesolivierklein
Date:
2019-01-09
Revision:
29:a87942774bd4
Parent:
28:11ebe30bbd30

File content as of revision 29:a87942774bd4:

// Title : mbed-os-periodic-task
// Author: Jacques-Olivier Klein - IUT de CACHAN
// Date: 2018-02-10 rev. 2019-01-06

#include "mbed.h"
#include "IHM.h"

IHM ihm; 

DigitalOut L0 (PB_3) ;  // led L0
DigitalOut L1 (PA_7) ;  // led L1
DigitalOut L2 (PA_6) ;  // led L2
DigitalOut L6 (PA_0) ;  // led L6

void led0_fun();
void led1_fun();
void led2_fun();

EventQueue the_event_queue;

int main(void)
{   ihm.LCD_clear();
    ihm.LCD_printf("periodic-task-%s %s",__DATE__,__TIME__);
    printf("mbed-os-periodic-task-%s %s\n\r",__DATE__,__TIME__);
    printf("OS_STACK_SIZE:%d\n\r", OS_STACK_SIZE); 

    the_event_queue.call_every(100, led0_fun);
    the_event_queue.call_every(400, led1_fun);
    the_event_queue.call_every(1600, led2_fun);
    
    printf("Starting event_queue...\n\r");   
    the_event_queue.dispatch();
   
    //while(1) hereafter will never be executed    
    while(1){
        wait(0.500);  
        L6=!L6;
    }
}

void led0_fun()
{
   L0 = ! L0;
}

void led1_fun()
{
   L1 = ! L1;
}

void led2_fun()
{
   L2 = ! L2;
}