Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
main.cpp
- Committer:
- Jamess
- Date:
- 2015-04-29
- Revision:
- 3:7d014ee1c543
- Parent:
- 2:769c937f9228
- Child:
- 4:f7d06462819b
File content as of revision 3:7d014ee1c543:
// Goal: Program that receives and send 4 channels of data.
// Receives: 1kHz
// Sends: 70kbits/s
// Ver qual o melhor modo de blueth (i2C,SPI,UART);
/* DONE:
Receber sinais Analógicos
*/
/* TO DO:
Juntar ao módulo Bluetooth
*/
#include "mbed.h"
/*--------------Signal Definition-----------------*/
#define ECG1 0
#define ECG2 1
#define RESP 2
#define PPG 3
/*------------- Sample Speed Timer --------*/
#define TIMER_RATE 1
/*-----READS THE ANALOG SIGNAL FROM THE SENSORS-----*/
AnalogIn Ecg1(A0);
AnalogIn Ecg2(A1);
AnalogIn Resp(A3);
AnalogIn Ppg(A4);
/*------CONTROLS THE DATA RATE OF THE READING------*/
Ticker t0;
Serial pc(USBTX,USBRX);
/*------HANDLES THE TIMER AND SERIAL INTERRUPTIONS------------*/
void t0_handler(void);
void rx_Handler(void);
char test = 0; // Tests the data received from the computer in order to start the reading
bool Valor=0;
bool rx_Interrupt = 0;
bool TimerStatus = 0;
/*------------BUFFER TO STORE DATA------------------*/
int buffer[4] = {0,0,0,0};
int main() {
pc.printf("main");
pc.attach(&rx_Handler, pc.RxIrq);
while(1){
while(rx_Interrupt){
if(test == '2'|| test == '2')
{ // wake up routine
t0.attach(&t0_handler,TIMER_RATE); //start counting ----Data read in a 1kHz freq. (1mS)
}else if (test=='3'|| test == '3')
{
t0.detach();
}
rx_Interrupt = 0;
}
if (TimerStatus){
buffer[ECG1] = Ecg1.read_u16();
buffer[ECG2] = Ecg2.read_u16();
buffer[RESP] = Resp.read_u16();
buffer[PPG] = Ppg.read_u16();
pc.printf("%i,%i,%i,%i\n",buffer[ECG1],buffer[ECG2],buffer[RESP],buffer[PPG]);
TimerStatus = 0;
}
}}
/*----------------------FUNCTIONS-----------------------*/
//Reads and send data to the computer
void t0_handler(void){
TimerStatus = 1;
}
void rx_Handler(void){
// A programação não estava funcionando poisnão se deve utilizar interrupções para realizar grandes tarefas;
// Elas travam e não funciona mais nada.
// Como fazer para não ficar testando no main?? Sexta feira no globo reporter
rx_Interrupt = 1;
test = pc.getc(); // it gets the received character
pc.putc(test);
}