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: xtoff RF24Network mbed
Fork of RF24Network_Send by
main.cpp
- Committer:
- pietor
- Date:
- 2018-02-22
- Revision:
- 7:cbdbaf825b4a
- Parent:
- 6:03ba3e18ced2
- Child:
- 8:62b4607c44ca
File content as of revision 7:cbdbaf825b4a:
#include "Verzender.h"
#define NUM_SAMPLES 2000 // size of sample series
Serial pc(USBTX, USBRX);
DigitalIn pb(p25);
Verzender sent;
AnalogIn ain(p17);
float tare = 0;
float massa = 0;
Timer t2;
State current_state = State_init;
void setCurrentState( State setState )
{
current_state = setState;
}
State getCurrentState()
{
return current_state;
}
float getAverageSamples(int samples)
{
float AVERAGE = 0;
int num_samples = 0;
while (num_samples < samples) {
float r = ain.read();
AVERAGE += r;
num_samples++;
}
AVERAGE /= num_samples;
num_samples = 0;
return AVERAGE;
}
float getAverageTime()
{
t2.start();
t2.reset();
float AVERAGE = 0;
int num_samples = 0;
while (!pb &t2.read() <= 1) {
float r = ain.read();
AVERAGE += r;
num_samples++;
}
AVERAGE /= num_samples;
num_samples = 0;
return AVERAGE;
}
int main()
{
while(1) {
sent.update();
switch (current_state) {
case State_init:
pc.baud(9600);
wait_ms(1000);
pc.printf("--Verzender--\n\r");
pb.mode(PullUp);
setCurrentState(State_read);
payload_t payload;
break;
case State_position:
pc.printf("State: position\n\r");
if (!pb)
setCurrentState(State_tare);
break;
case State_tare:
pc.printf("State: tare\n\r");
tare = getAverageSamples(50000);
pc.printf("tare = %f\r\n",tare*3.3);
setCurrentState(State_read);
break;
case State_read:
//pc.printf("State: read\n\r");
if (!pb) {
massa = getAverageTime() - tare;
//pc.printf("massa = %f\r\n", massa*3.3);
payload.reedsensor = 1;
payload.milligram = massa * 3.3;
//pc.printf("Sent packet1 -- Reed: %d --- %f mg \r\n",payload.reedsensor, payload.milligram);
bool ok = sent.write(payload);
if (ok) {
pc.printf("ok.\n\r");
} else {
pc.printf("failed.\n\r");
}
//pc.printf("Sent packet2 -- Reed: %d --- %f mg \r\n",payload.reedsensor, payload.milligram);
setCurrentState(State_receive);
//setCurrentState(State_send);
}
break;
case State_receive:
//pc.printf("State :receive");
sent.update();
if (sent.available()) {
state_Packet state;
state = sent.read();
if(state.setstate == State_position) {
setCurrentState(State_position);
break;
}
}
setCurrentState(State_read);
break;
}
}
}
