test code for our MBED board

Dependencies:   mbed lwip

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

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lolpcc 1:6877bb99aa17 1 #include "mbed.h"
lolpcc 1:6877bb99aa17 2 #include <stdarg.h>
lolpcc 1:6877bb99aa17 3 #include "main.h"
lolpcc 1:6877bb99aa17 4 #include "serial.h"
lolpcc 1:6877bb99aa17 5 #include "local_defines.h"
lolpcc 1:6877bb99aa17 6 #include "useful.h"
lolpcc 1:6877bb99aa17 7
lolpcc 1:6877bb99aa17 8 extern int var[MAX_VAR];
lolpcc 1:6877bb99aa17 9 extern int sys_state;
lolpcc 1:6877bb99aa17 10
lolpcc 1:6877bb99aa17 11 /* Function: hexview
lolpcc 1:6877bb99aa17 12 * Prints an array of char to stdout in hex.
lolpcc 1:6877bb99aa17 13 * The data is grouped in two 8 byte groups per line.
lolpcc 1:6877bb99aa17 14 * Each byte is displayed as 2 hex digits and every
lolpcc 1:6877bb99aa17 15 * line starts with the address of the first byte.
lolpcc 1:6877bb99aa17 16 *
lolpcc 1:6877bb99aa17 17 * There is no text view of a line.
lolpcc 1:6877bb99aa17 18 *
lolpcc 1:6877bb99aa17 19 * Variables:
lolpcc 1:6877bb99aa17 20 * buffer - The array to display.
lolpcc 1:6877bb99aa17 21 * size - The length of buffer.
lolpcc 1:6877bb99aa17 22 *
lolpcc 1:6877bb99aa17 23 * Author: rmeyer
lolpcc 1:6877bb99aa17 24 */
lolpcc 1:6877bb99aa17 25 void hexview(char *buffer, unsigned int size) {
lolpcc 1:6877bb99aa17 26 printf("\n");
lolpcc 1:6877bb99aa17 27 for(int i = 0; i < size; ++i) {
lolpcc 1:6877bb99aa17 28 if((i%16)!=0) {
lolpcc 1:6877bb99aa17 29 printf(" ");
lolpcc 1:6877bb99aa17 30 } else {
lolpcc 1:6877bb99aa17 31 printf("%04X: ", (i));
lolpcc 1:6877bb99aa17 32 }
lolpcc 1:6877bb99aa17 33 printf("%02hhx", buffer[i]);
lolpcc 1:6877bb99aa17 34 if((i%16) == 7) {
lolpcc 1:6877bb99aa17 35 printf(" ");
lolpcc 1:6877bb99aa17 36 }
lolpcc 1:6877bb99aa17 37 if((i%16) == 15) {
lolpcc 1:6877bb99aa17 38 printf("\n\r");
lolpcc 1:6877bb99aa17 39 }
lolpcc 1:6877bb99aa17 40 }
lolpcc 1:6877bb99aa17 41 printf("\n\r\n\r\n\r");
lolpcc 1:6877bb99aa17 42 }
lolpcc 1:6877bb99aa17 43
lolpcc 1:6877bb99aa17 44 /******************************************/
lolpcc 1:6877bb99aa17 45 /* */
lolpcc 1:6877bb99aa17 46 /* Lprintf, Bring the printf under our */
lolpcc 1:6877bb99aa17 47 /* control, so we can use either rs232 */
lolpcc 1:6877bb99aa17 48 /* or the USB-Serial connections as an */
lolpcc 1:6877bb99aa17 49 /* I/O channel. */
lolpcc 1:6877bb99aa17 50 /* */
lolpcc 1:6877bb99aa17 51 /******************************************/
lolpcc 1:6877bb99aa17 52
lolpcc 1:6877bb99aa17 53 void lprintf(const char* fmt, ...)
lolpcc 1:6877bb99aa17 54 {
lolpcc 1:6877bb99aa17 55 char str[0x1000];
lolpcc 1:6877bb99aa17 56
lolpcc 1:6877bb99aa17 57 va_list ap;
lolpcc 1:6877bb99aa17 58 va_start(ap, fmt);
lolpcc 1:6877bb99aa17 59 vsprintf(str, fmt, ap);
lolpcc 1:6877bb99aa17 60 if (sys_state & TO_RS232){
lolpcc 1:6877bb99aa17 61 rs232_output_string(str);
lolpcc 1:6877bb99aa17 62 } else if (sys_state & TO_USB){
lolpcc 1:6877bb99aa17 63 pc_output_string(str);
lolpcc 1:6877bb99aa17 64 }
lolpcc 1:6877bb99aa17 65 va_end(ap);
lolpcc 1:6877bb99aa17 66 }
lolpcc 1:6877bb99aa17 67
lolpcc 1:6877bb99aa17 68 /******************************************/
lolpcc 1:6877bb99aa17 69 /* */
lolpcc 1:6877bb99aa17 70 /* Read a value in from a user, workout */
lolpcc 1:6877bb99aa17 71 /* if its hex or decimal, and return an */
lolpcc 1:6877bb99aa17 72 /* int to the user */
lolpcc 1:6877bb99aa17 73 /* */
lolpcc 1:6877bb99aa17 74 /******************************************/
lolpcc 1:6877bb99aa17 75 int htoi(char *str)
lolpcc 1:6877bb99aa17 76 {
lolpcc 1:6877bb99aa17 77 if(strlen(str)>=2){
lolpcc 1:6877bb99aa17 78 if(str[0]=='v' || str[0]=='V'){
lolpcc 1:6877bb99aa17 79 return(var[return_var(str)]);
lolpcc 1:6877bb99aa17 80 } else if(str[1]=='x' || str[1]=='X'){
lolpcc 1:6877bb99aa17 81 return(strtol(str, NULL, 16));
lolpcc 1:6877bb99aa17 82 }
lolpcc 1:6877bb99aa17 83 }
lolpcc 1:6877bb99aa17 84 return(atoi(str));
lolpcc 1:6877bb99aa17 85 }
lolpcc 1:6877bb99aa17 86
lolpcc 1:6877bb99aa17 87 /******************************************/
lolpcc 1:6877bb99aa17 88 /* */
lolpcc 1:6877bb99aa17 89 /* Given the input string, return the */
lolpcc 1:6877bb99aa17 90 /* number of the variable the user wants */
lolpcc 1:6877bb99aa17 91 /* its added to htoi, so all inputs */
lolpcc 1:6877bb99aa17 92 /* should get access to the variable data */
lolpcc 1:6877bb99aa17 93 /* */
lolpcc 1:6877bb99aa17 94 /******************************************/
lolpcc 1:6877bb99aa17 95
lolpcc 1:6877bb99aa17 96 int return_var(char *str)
lolpcc 1:6877bb99aa17 97 {
lolpcc 1:6877bb99aa17 98 char buf[0x4];
lolpcc 1:6877bb99aa17 99 int a;
lolpcc 1:6877bb99aa17 100
lolpcc 1:6877bb99aa17 101 buf[0] = str[1];
lolpcc 1:6877bb99aa17 102 buf[1] = str[2];
lolpcc 1:6877bb99aa17 103 buf[2] = str[3];
lolpcc 1:6877bb99aa17 104 buf[3] = str[4];
lolpcc 1:6877bb99aa17 105 a = atoi(buf);
lolpcc 1:6877bb99aa17 106 if(a > MAX_VAR){
lolpcc 1:6877bb99aa17 107 lprintf("In Return_var, var number %d more than MAXVAR %d, returned -1\n",
lolpcc 1:6877bb99aa17 108 a,MAX_VAR);
lolpcc 1:6877bb99aa17 109 return(-1);
lolpcc 1:6877bb99aa17 110 }
lolpcc 1:6877bb99aa17 111 return(a);
lolpcc 1:6877bb99aa17 112 }