serial ploter

Dependencies:   mbed mbed-rtos

main.cpp

Committer:
jasonberry
Date:
2020-10-13
Revision:
5:b19a92f1f5ec
Parent:
3:c490e2d69dd8

File content as of revision 5:b19a92f1f5ec:

#include "mbed.h"
#include "rtos.h"
#include "LM75B.h"
#include "MMA7660.h"

MMA7660 MMA(p28, p27); //I2C Accelerometer
LM75B sensor(p28,p27);

//serial data
////////////////////////////////////////////////////////////
//typedef struct {
//    float    voltage;   /* AD result of measured voltage */
//    float    current;   /* AD result of measured current */
//    uint32_t counter;   /* A counter value               */
//} message_t;

//plotter data temperature
//////////////////////////////////////////////////////////////
//typedef struct {
//   uint32_t   temperature;   /* AD result of measured voltage */
//} message_t;

//plotter data acceleromter
//////////////////////////////////////////////////////////////
typedef struct {
    uint32_t   x_axis;   /* AD result of measured voltage */
} message_t;

MemoryPool<message_t, 16> mpool;
Queue<message_t, 16> queue;

/* Send Thread */
void send_thread (void const *args) {
    uint32_t i = 0;
    while (true) {
        i++; // fake data update
        message_t *message = mpool.alloc();
        
        //fake message
        //message->voltage = (i * 0.1) * 33; 
        //message->current = (i * 0.1) * 11;
        //message->counter = i;
        
        //temperature message  
        //message->temperature = (uint32_t)sensor; 
        
        //acceleration  message  
        message->x_axis = (uint32_t)(MMA.x()*100);
        
        queue.put(message);
        Thread::wait(10);
       
  
    }
}

int main (void) {
    Thread thread(send_thread);
    
    sensor.open();
    MMA.testConnection();
   
    while (true) {
        osEvent evt = queue.get();
        if (evt.status == osEventMessage) {
            message_t *message = (message_t*)evt.value.p;
            //serial print out
            //printf("\nVoltage: %.2f V\n\r"   , message->voltage);
            //printf("Current: %.2f A\n\r"     , message->current);
            //printf("Number of cycles: %u\n\r", message->counter);
            
            
            //serial plotter start with $ end with ;
            //printf("$%d;\n\r", message->temperature);
            
            //serial plotter start with $ end with ;
            printf("$%d;\n\r", message->x_axis);

            mpool.free(message);
        }
    }
}