fuyuno sakura / Mbed 2 deprecated datalogger1

Dependencies:   mbed

Committer:
mio
Date:
Mon Feb 10 07:51:06 2014 +0000
Revision:
1:2ee96e43619f
Parent:
0:bfb59ebe2f4a
Child:
2:b3703b128b14
Rev2: By-Pass and Clear Position of ZW-Sensor

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mio 0:bfb59ebe2f4a 1 #include "mbed.h"
mio 0:bfb59ebe2f4a 2
mio 0:bfb59ebe2f4a 3 Serial pc(USBTX,USBRX) ;
mio 1:2ee96e43619f 4 Serial zw(p9,p10) ;
mio 0:bfb59ebe2f4a 5 InterruptIn TRG(p30) ;
mio 0:bfb59ebe2f4a 6 DigitalOut TRG_OUT(p13) ;
mio 0:bfb59ebe2f4a 7 DigitalOut led1(LED1),led2(LED2),led3(LED3),led4(LED4);
mio 0:bfb59ebe2f4a 8 Ticker timer ;
mio 0:bfb59ebe2f4a 9
mio 0:bfb59ebe2f4a 10 volatile int edgectr = 0;
mio 0:bfb59ebe2f4a 11 volatile int onctr = 0 ;
mio 0:bfb59ebe2f4a 12 volatile int state = 0 ;
mio 0:bfb59ebe2f4a 13 volatile int nowtrg = 0 ;
mio 0:bfb59ebe2f4a 14
mio 0:bfb59ebe2f4a 15 void timer1ms()
mio 0:bfb59ebe2f4a 16 {
mio 0:bfb59ebe2f4a 17 if (onctr > 0) {
mio 0:bfb59ebe2f4a 18 onctr++;
mio 0:bfb59ebe2f4a 19 }
mio 0:bfb59ebe2f4a 20 }
mio 0:bfb59ebe2f4a 21
mio 0:bfb59ebe2f4a 22 void trgon()
mio 0:bfb59ebe2f4a 23 {
mio 0:bfb59ebe2f4a 24 edgectr++ ;
mio 0:bfb59ebe2f4a 25 if (onctr == 0) {
mio 0:bfb59ebe2f4a 26 onctr++ ;
mio 0:bfb59ebe2f4a 27 }
mio 0:bfb59ebe2f4a 28 }
mio 0:bfb59ebe2f4a 29
mio 1:2ee96e43619f 30 char zwrxbuf[1024] = "---------------------------" ;
mio 1:2ee96e43619f 31 int zwrxctr = 0;
mio 1:2ee96e43619f 32
mio 1:2ee96e43619f 33 char sendbuf[] = "************" ;
mio 1:2ee96e43619f 34
mio 0:bfb59ebe2f4a 35 int main() {
mio 0:bfb59ebe2f4a 36 pc.baud(115200) ;
mio 1:2ee96e43619f 37 zw.baud(115200) ;
mio 0:bfb59ebe2f4a 38 TRG.mode(PullUp) ;
mio 0:bfb59ebe2f4a 39 TRG.fall(trgon);
mio 0:bfb59ebe2f4a 40 timer.attach(timer1ms,0.001) ; // 1ms
mio 0:bfb59ebe2f4a 41 while(1)
mio 0:bfb59ebe2f4a 42 {
mio 0:bfb59ebe2f4a 43 if (onctr > 0) {
mio 0:bfb59ebe2f4a 44 if (onctr >= 20) {
mio 0:bfb59ebe2f4a 45 onctr = 0 ;
mio 0:bfb59ebe2f4a 46 led4 = !led4 ;
mio 1:2ee96e43619f 47 pc.printf("%d,%s\r\n",edgectr,sendbuf) ;
mio 0:bfb59ebe2f4a 48 } else if (onctr >= 10) {
mio 0:bfb59ebe2f4a 49 TRG_OUT = 0 ;
mio 0:bfb59ebe2f4a 50 } else {
mio 0:bfb59ebe2f4a 51 TRG_OUT = 1 ;
mio 0:bfb59ebe2f4a 52 }
mio 0:bfb59ebe2f4a 53 }
mio 0:bfb59ebe2f4a 54
mio 0:bfb59ebe2f4a 55 if (pc.readable()) {
mio 0:bfb59ebe2f4a 56 if (pc.getc() == '*') {
mio 0:bfb59ebe2f4a 57 edgectr = 0 ;
mio 1:2ee96e43619f 58 for(int i=0;i<sizeof(sendbuf)-1;i++) {
mio 1:2ee96e43619f 59 sendbuf[i] = '*' ;
mio 1:2ee96e43619f 60 }
mio 1:2ee96e43619f 61 pc.printf("%d,%s\r\n",edgectr,sendbuf) ;
mio 1:2ee96e43619f 62 }
mio 1:2ee96e43619f 63 }
mio 1:2ee96e43619f 64
mio 1:2ee96e43619f 65 // read zw
mio 1:2ee96e43619f 66 if (zw.readable()) {
mio 1:2ee96e43619f 67 int c = zw.getc() ;
mio 1:2ee96e43619f 68 if (c != 0x0D) {
mio 1:2ee96e43619f 69 zwrxbuf[zwrxctr] = c ;
mio 1:2ee96e43619f 70 zwrxctr = (zwrxctr + 1) & 0xFF ;
mio 1:2ee96e43619f 71 led3 = !led3 ;
mio 1:2ee96e43619f 72 } else {
mio 1:2ee96e43619f 73 // copy
mio 1:2ee96e43619f 74 for(int i=0;i<sizeof(sendbuf)-1;i++) {
mio 1:2ee96e43619f 75 sendbuf[i] = zwrxbuf[i] ;
mio 1:2ee96e43619f 76 }
mio 1:2ee96e43619f 77 // reset
mio 1:2ee96e43619f 78 zwrxctr = 0 ;
mio 1:2ee96e43619f 79 led2 = !led2 ;
mio 0:bfb59ebe2f4a 80 }
mio 0:bfb59ebe2f4a 81 }
mio 0:bfb59ebe2f4a 82 }
mio 0:bfb59ebe2f4a 83 }