Test Program for Multi Adapter
Revision 1:b97b4f4e5adb, committed 2018-01-16
- Comitter:
- Rhyme
- Date:
- Tue Jan 16 06:47:25 2018 +0000
- Parent:
- 0:4c6961cb6ccf
- Child:
- 2:9f4eff106f89
- Commit message:
- commit before publishing
Changed in this revision
| edge.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- 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 ;