test code for our MBED board

Dependencies:   mbed lwip

Committer:
lolpcc
Date:
Wed May 04 08:30:52 2011 +0000
Revision:
1:6877bb99aa17
Parent:
0:9edfcca7cd25

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lolpcc 0:9edfcca7cd25 1 #include "mbed.h"
lolpcc 1:6877bb99aa17 2 #include "useful.h"
lolpcc 0:9edfcca7cd25 3
lolpcc 1:6877bb99aa17 4 extern int set_baud_rate;
lolpcc 1:6877bb99aa17 5
lolpcc 1:6877bb99aa17 6 Serial rs232(p13, p14); // tx, rx
lolpcc 0:9edfcca7cd25 7 /******************************************/
lolpcc 0:9edfcca7cd25 8 /* */
lolpcc 0:9edfcca7cd25 9 /* Test the RS232 interface */
lolpcc 0:9edfcca7cd25 10 /* Should send and recieve data on the */
lolpcc 0:9edfcca7cd25 11 /* serial port, send a string, and get */
lolpcc 0:9edfcca7cd25 12 /* back what is returned from the RX */
lolpcc 0:9edfcca7cd25 13 /* */
lolpcc 0:9edfcca7cd25 14 /******************************************/
lolpcc 1:6877bb99aa17 15 void rs232_opener(void)
lolpcc 1:6877bb99aa17 16 {
lolpcc 1:6877bb99aa17 17 rs232.baud(9600);
lolpcc 1:6877bb99aa17 18 rs232.printf("\n\r");
lolpcc 1:6877bb99aa17 19 rs232.printf("MBED Testbed\n\r");
lolpcc 1:6877bb99aa17 20 }
lolpcc 1:6877bb99aa17 21
lolpcc 1:6877bb99aa17 22 int rs232_readable(void)
lolpcc 0:9edfcca7cd25 23 {
lolpcc 1:6877bb99aa17 24 return(rs232.readable());
lolpcc 1:6877bb99aa17 25 }
lolpcc 1:6877bb99aa17 26
lolpcc 1:6877bb99aa17 27 void rs232_output_string(char *buf)
lolpcc 1:6877bb99aa17 28 {
lolpcc 1:6877bb99aa17 29 int a = 0;
lolpcc 1:6877bb99aa17 30 while(a != strlen(buf)){
lolpcc 1:6877bb99aa17 31 rs232.putc(buf[a]);
lolpcc 1:6877bb99aa17 32 if(buf[a]=='\n')
lolpcc 1:6877bb99aa17 33 rs232.putc('\r');
lolpcc 1:6877bb99aa17 34 a++;
lolpcc 1:6877bb99aa17 35 }
lolpcc 0:9edfcca7cd25 36 }
lolpcc 0:9edfcca7cd25 37
lolpcc 1:6877bb99aa17 38 int rs232_gets(char *s,int len)
lolpcc 0:9edfcca7cd25 39 {
lolpcc 1:6877bb99aa17 40 char c;
lolpcc 1:6877bb99aa17 41 int cnt=0;
lolpcc 1:6877bb99aa17 42
lolpcc 1:6877bb99aa17 43 while ((c = rs232.getc()) != 0) {
lolpcc 1:6877bb99aa17 44 if ((c == 0x0a) || (c==0x0d)) {
lolpcc 1:6877bb99aa17 45 rs232.printf("\n\r");
lolpcc 1:6877bb99aa17 46 *s++ = '\0';
lolpcc 1:6877bb99aa17 47 return(cnt); /* Return length */
lolpcc 1:6877bb99aa17 48 } else if (c==0x7f) { /* Delete */
lolpcc 1:6877bb99aa17 49 rs232.putc(0x08);
lolpcc 1:6877bb99aa17 50 rs232.putc(0x20);
lolpcc 1:6877bb99aa17 51 rs232.putc(0x08);
lolpcc 1:6877bb99aa17 52 cnt--;
lolpcc 1:6877bb99aa17 53 *s--;
lolpcc 1:6877bb99aa17 54 } else if (c==0x08) { /* BS */
lolpcc 1:6877bb99aa17 55 rs232.putc(0x08);
lolpcc 1:6877bb99aa17 56 rs232.putc(0x20);
lolpcc 1:6877bb99aa17 57 rs232.putc(0x08);
lolpcc 1:6877bb99aa17 58 cnt--;
lolpcc 1:6877bb99aa17 59 *s--;
lolpcc 1:6877bb99aa17 60 } else if (c==025) { /* CTRL-U */
lolpcc 1:6877bb99aa17 61 while (cnt!=0) {
lolpcc 1:6877bb99aa17 62 rs232.putc(0x08);
lolpcc 1:6877bb99aa17 63 rs232.putc(0x20);
lolpcc 1:6877bb99aa17 64 rs232.putc(0x08);
lolpcc 1:6877bb99aa17 65 cnt--;
lolpcc 1:6877bb99aa17 66 *s--;
lolpcc 1:6877bb99aa17 67 }
lolpcc 1:6877bb99aa17 68 } else {
lolpcc 1:6877bb99aa17 69 *s++ = c;
lolpcc 1:6877bb99aa17 70 rs232.putc(c);
lolpcc 1:6877bb99aa17 71 cnt++;
lolpcc 1:6877bb99aa17 72 }
lolpcc 1:6877bb99aa17 73 }
lolpcc 1:6877bb99aa17 74 return(cnt);
lolpcc 1:6877bb99aa17 75 }
lolpcc 1:6877bb99aa17 76
lolpcc 1:6877bb99aa17 77 /******************************************/
lolpcc 1:6877bb99aa17 78 /* */
lolpcc 1:6877bb99aa17 79 /* Set the baud rate of the serial line */
lolpcc 1:6877bb99aa17 80 /* from the command line input */
lolpcc 1:6877bb99aa17 81 /* */
lolpcc 1:6877bb99aa17 82 /******************************************/
lolpcc 1:6877bb99aa17 83 #define BAUD_NUMBER 10
lolpcc 1:6877bb99aa17 84 void baud_rate(int c, char **a)
lolpcc 1:6877bb99aa17 85 {
lolpcc 1:6877bb99aa17 86 int b,cnt;
lolpcc 1:6877bb99aa17 87 int v[BAUD_NUMBER] = {300,600,1200,2400,4800,9600,19200,38400,57600,15200};
lolpcc 1:6877bb99aa17 88
lolpcc 1:6877bb99aa17 89 b = atoi(a[1]);
lolpcc 1:6877bb99aa17 90 cnt = 0;
lolpcc 1:6877bb99aa17 91 while(cnt < BAUD_NUMBER){
lolpcc 1:6877bb99aa17 92 if(v[cnt]==b){
lolpcc 1:6877bb99aa17 93 rs232.baud(b);
lolpcc 1:6877bb99aa17 94 set_baud_rate = b;
lolpcc 1:6877bb99aa17 95 return;
lolpcc 1:6877bb99aa17 96 }
lolpcc 1:6877bb99aa17 97 cnt++;
lolpcc 1:6877bb99aa17 98 }
lolpcc 1:6877bb99aa17 99 cnt=0;
lolpcc 1:6877bb99aa17 100 lprintf("Select a speed from ");
lolpcc 1:6877bb99aa17 101 while(cnt < BAUD_NUMBER){
lolpcc 1:6877bb99aa17 102 lprintf("%d ",v[cnt]);
lolpcc 1:6877bb99aa17 103 cnt++;
lolpcc 1:6877bb99aa17 104 }
lolpcc 1:6877bb99aa17 105 lprintf("\n\r");
lolpcc 1:6877bb99aa17 106 }
lolpcc 1:6877bb99aa17 107 /******************************************/
lolpcc 1:6877bb99aa17 108 /* */
lolpcc 1:6877bb99aa17 109 /* Send a string to the serial port */
lolpcc 1:6877bb99aa17 110 /* */
lolpcc 1:6877bb99aa17 111 /******************************************/
lolpcc 1:6877bb99aa17 112 void rs232_test_code(int c, char **a)
lolpcc 1:6877bb99aa17 113 {
lolpcc 1:6877bb99aa17 114 char buf[0x100];
lolpcc 1:6877bb99aa17 115 sprintf(buf,"%s\n",a[1]);
lolpcc 1:6877bb99aa17 116 rs232_output_string(buf);
lolpcc 1:6877bb99aa17 117
lolpcc 0:9edfcca7cd25 118 }