APS de Sistemas Operacionais / Controle 2 FINAL

Dependencies:   EthernetInterface HCSR04 PID Servo mbed-rtos mbed

Fork of aps_so_c2_old by Felipe dos Santos Neves

main.cpp

Committer:
feupos
Date:
2017-10-30
Revision:
1:c07ed2436cd8
Parent:
0:8d53c4c11953
Child:
2:f3ba67384801

File content as of revision 1:c07ed2436cd8:

#include "mbed.h"
#include "rtos.h"
 #include "ultrasonic.h"

DigitalOut led1(LED1);
InterruptIn sw2(SW2);
uint32_t button_pressed;
Thread *thread2;
ultrasonic us = ultrasonic(PTC2, PTC3, 100, 1000);

void sw2_press(void)
{
    thread2->signal_set(0x1);
    
}

void led_thread(void const *argument)
{
    while (true) {
        led1 = !led1;
        Thread::wait(1000);
    }
}

void button_thread(void const *argument)
{
    while (true) {
        Thread::signal_wait(0x1);
        float x = us.getCurrentDistance();
        printf("distance = %f\n", x);
        button_pressed++;
    }
}

int main()
{
    Thread thread(led_thread);
    thread2 = new Thread(button_thread);
    //teste

    button_pressed = 0;
    sw2.fall(&sw2_press);
    while (true) {
        Thread::wait(5000);
        printf("SW2 was pressed (last 5 seconds): %d \n", button_pressed);
        fflush(stdout);
        button_pressed = 0;
    }
}