testing code for analog_in

Dependencies:   EthernetInterface FastAnalogIn mbed-rtos mbed

main2.txt

Committer:
michaelcoe
Date:
2014-10-21
Revision:
0:e066babe3c39

File content as of revision 0:e066babe3c39:

#include "mbed.h"
#include "FastAnalogIn.h"
#include "EthernetInterface.h"
 
AnalogIn input1(p15);
AnalogIn input2(p16);
AnalogIn input3(p17);
AnalogIn input4(p18);
DigitalOut led1(LED1);
Timer t, t2;

const int BROADCAST_PORT = 58083;
 
struct data{
   int times[512];
   uint16_t sample_buffer[2048];
   int send_time;
}sample_data;

int main() {
    //Setting up the Ethernet
    EthernetInterface eth;
    eth.init(); //Use DHCP
    eth.connect();
    
    UDPSocket sock;
    sock.init();
    sock.set_broadcasting();
    
    Endpoint broadcast;
    broadcast.set_address("255.255.255.255", BROADCAST_PORT);
    
//    uint16_t sample_buffer[2560];
    sample_data.send_time = 0;
    
    while(1){   
        printf("Executing Read Loop");
        t.start();
        for(int i=0; i<512; i++) {
            sample_data.times[i] = t.read_us();
            sample_data.sample_buffer[i+512] = input1.read_u16();
            sample_data.sample_buffer[i+1024] = input2.read_u16();
            sample_data.sample_buffer[i+1536] = input3.read_u16();
            sample_data.sample_buffer[i+2048] = input4.read_u16();
            //wait_ms(1);
        }
        t.stop();
        t.reset();
        t2.start();
        
        printf("Copying to char array \n");
        int len = sizeof(struct data);
        char out_buffer[len];
        memcpy(&out_buffer, &sample_data, len);
        
 //       char out_buffer[5120];
//        memcpy(&out_buffer,&sample_buffer,sizeof(sample_buffer));
        
        printf("Sending to Ethernet \n");
        sock.sendTo(broadcast, out_buffer, sizeof(out_buffer));
        sample_data.send_time = t2.read_us();
        
        t2.stop();
        t2.reset();
    }
}