Motoo Tanaka
/
KL25Z_UART_EDGE_180115
Test Program for Multi Adapter
Diff: edge.cpp
- Revision:
- 1:b97b4f4e5adb
- Parent:
- 0:4c6961cb6ccf
- Child:
- 2:9f4eff106f89
--- a/edge.cpp Mon Jan 15 07:53:03 2018 +0000 +++ b/edge.cpp Tue Jan 16 06:47:25 2018 +0000 @@ -5,31 +5,34 @@ #include "mbed.h" -#define PIN_AN0 PTB0 -#define PIN_AN1 PTB1 -#define PIN_AN2 PTB2 -#define PIN_AN3 PTB3 +#define PIN_AN0 PTB0 +#define PIN_AN1 PTB1 +#define PIN_AN2 PTB2 +#define PIN_AN3 PTB3 -#define PIN_LEDR PTB18 -#define PIN_LEDG PTB19 -#define PIN_LEDB PTD1 +#define PIN_LEDR PTB18 +#define PIN_LEDG PTB19 +#define PIN_LEDB PTD1 -#define UART_TX PTE0 -#define UART_RX PTE1 -#define BAUD_RATE 9600 +#define UART_TX PTE0 +#define UART_RX PTE1 +#define BAUD_RATE 9600 -#define MODE_IDLE 0 -#define MODE_ALART 1 -#define MODE_DATA 2 -#define ACK (0x3E) +#define MODE_IDLE 0 +#define MODE_ALART 1 +#define MODE_DATA 2 +#define ACK (0x3E) // #define ACK (0x06) -#define TILDE '~' +#define TILDE '~' +#define CR '\r' +#define DOT '.' +#define SPACE ' ' // R0=5.0, float R1=4.95, float B=3324, float T0=298.15 -#define R0 5.0 -#define R1 4.95 -#define B 3324 -#define T0 298.15 +#define R0 5.0 +#define R1 4.95 +#define B 3324 +#define T0 298.15 DigitalOut *led_r = 0 ; DigitalOut *led_g = 0 ; @@ -56,19 +59,26 @@ void knock(void) { - uint8_t c = '\r' ; + uint8_t c = CR ; printf("Knocking on the host's door\n") ; printf("Sending 0x%02X\n", c) ; -// tty->putc('A') ; tty->putc(c) ; wait(0.5) ; } int wait_ack(void) { - char c ; - printf("Waiting for ACK\n") ; - c = tty->getc() ; + char c = 0xFF ; + printf("Waiting for ACK ") ; + for (int i = 0 ; i < 10 ; i++ ) { + if (tty->readable()) { + c = tty->getc() ; + } else { + tty->putchar(DOT) ; + } + wait(1) ; + } + tty->putchar(SPACE) ; if (c == ACK) { printf("ACK received\n") ; } else { @@ -83,6 +93,7 @@ float f, raw, rr1, t ; if (an[n]) { f = an[n]->read() ; + // printf("AN[%d] = %.2f\n",n, f) ; raw = f * 3.3 ; rr1 = R1 * raw / (3.3 - raw) ; t = 1.0 / (log(rr1 / R0) / B + (1/T0)) ; @@ -100,8 +111,8 @@ for (i = 0 ; i < 4 ; i++ ) { temp[i] = getTemp(i) ; printf("temp[%d] = %.2f\n", i, temp[i]) ; - dummy = 100 * temp[i] ; - data[i * 2+1] = (int8_t)(dummy / 100) ; + dummy = (int)(100.0 * temp[i] + 0.5) ; + data[i * 2 + 1] = (int8_t)(dummy / 100) ; data[i * 2 + 2] = (int8_t)(dummy % 100) ; } data[9] = 0 ;