A USB/360deg Rotational device, communicating via blue-tooth, test code

Dependencies:   FatFileSystem mbed

Utils.cpp

Committer:
lolpcc
Date:
2012-12-21
Revision:
0:87da38093be9

File content as of revision 0:87da38093be9:



#include "mbed.h"
#include "Utils.h"
Serial rs232(p13, p14);  // tx, rx
AnalogIn ain(p15);

extern char global_buf1[0x20];
extern char global_buf2[0x20];

void setup_rs232(void)
{
    rs232.baud(19200);
}

int read_ana(void)
{
    float a;
    int   b;
    a = ain.read();
    a = a * 360;
    b = ftoi(a);
    return(b);
}

void send_out(char *buf)
{
    printf("%s",buf);
    rs232.printf("%s",buf);
}

void printfBytes(const char* s, const u8* data, int len)
{
   float a;
   int b;
   a = ain.read();
   a = a*360;
   b = ftoi(a);
   printf("%s %d: POS %d ",s,len,b);
    rs232.printf("%s %d: POS %d ",s,len,b);
    if (len > 256)
        len = 256;

    while (len-- > 0){
        printf(" %02X",*data);
        rs232.printf(" %02X",*data++);
    }
    printf("\n\r");
    rs232.printf("\n\r");
}

void printHexLine(const u8* d, int addr, int len)
{
    printf("%04X ",addr);
    int i;
    for (i = 0; i < len; i++)
        printf("%02X ",d[i]);
    for (;i < 16; i++)
        printf("   ");
    char s[16+1];
    memset(s,0,sizeof(s));
    for (i = 0; i < len; i++)
    {
        int c = d[i];
        if (c < 0x20 || c > 0x7E)
            c = '.';
        s[i] = c;
    }
    printf("%s\n\r",s);
}

void printHex(const u8* d, int len)
{
    int addr = 0;
    while (len)
    {
        int count = len;
        if (count > 16)
            count = 16;
        printHexLine(d+addr,addr,count);
        addr += 16;
        len -= count;
    }
}