Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@1:2ee96e43619f, 2014-02-10 (annotated)
- 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?
| User | Revision | Line number | New 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 | } |