Lingxuan Zeng
/
masterboard
works with chairdetect and listening
main.cpp@0:ed2c77b37f59, 2013-05-03 (annotated)
- Committer:
- zenglingxuan
- Date:
- Fri May 03 11:15:21 2013 +0000
- Revision:
- 0:ed2c77b37f59
masterboard of counting sitting time and typing time. typing wired. sitting wireless xbee. works.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
zenglingxuan | 0:ed2c77b37f59 | 1 | #include "mbed.h" |
zenglingxuan | 0:ed2c77b37f59 | 2 | #include "TextLCD.h" |
zenglingxuan | 0:ed2c77b37f59 | 3 | |
zenglingxuan | 0:ed2c77b37f59 | 4 | Timer t; |
zenglingxuan | 0:ed2c77b37f59 | 5 | |
zenglingxuan | 0:ed2c77b37f59 | 6 | DigitalOut led1(LED_BLUE); |
zenglingxuan | 0:ed2c77b37f59 | 7 | DigitalOut led2(LED_RED); |
zenglingxuan | 0:ed2c77b37f59 | 8 | TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5); // rs, e, d4-d7 |
zenglingxuan | 0:ed2c77b37f59 | 9 | |
zenglingxuan | 0:ed2c77b37f59 | 10 | Serial wire(PTD3,PTD2); |
zenglingxuan | 0:ed2c77b37f59 | 11 | Serial xbee2(PTC4, PTC3); |
zenglingxuan | 0:ed2c77b37f59 | 12 | DigitalOut rst2(PTC5); |
zenglingxuan | 0:ed2c77b37f59 | 13 | |
zenglingxuan | 0:ed2c77b37f59 | 14 | |
zenglingxuan | 0:ed2c77b37f59 | 15 | |
zenglingxuan | 0:ed2c77b37f59 | 16 | int main() |
zenglingxuan | 0:ed2c77b37f59 | 17 | { |
zenglingxuan | 0:ed2c77b37f59 | 18 | |
zenglingxuan | 0:ed2c77b37f59 | 19 | //initiating lcd and xbee reset |
zenglingxuan | 0:ed2c77b37f59 | 20 | |
zenglingxuan | 0:ed2c77b37f59 | 21 | lcd.cls(); |
zenglingxuan | 0:ed2c77b37f59 | 22 | lcd.locate(0,0); |
zenglingxuan | 0:ed2c77b37f59 | 23 | lcd.printf("starting\n"); |
zenglingxuan | 0:ed2c77b37f59 | 24 | rst2 = 0; |
zenglingxuan | 0:ed2c77b37f59 | 25 | wait_ms(1); |
zenglingxuan | 0:ed2c77b37f59 | 26 | rst2 = 1; |
zenglingxuan | 0:ed2c77b37f59 | 27 | wait_ms(1); |
zenglingxuan | 0:ed2c77b37f59 | 28 | |
zenglingxuan | 0:ed2c77b37f59 | 29 | |
zenglingxuan | 0:ed2c77b37f59 | 30 | char alast = 0; |
zenglingxuan | 0:ed2c77b37f59 | 31 | char a = 0; |
zenglingxuan | 0:ed2c77b37f59 | 32 | |
zenglingxuan | 0:ed2c77b37f59 | 33 | char typingflag; |
zenglingxuan | 0:ed2c77b37f59 | 34 | |
zenglingxuan | 0:ed2c77b37f59 | 35 | int typingtime; |
zenglingxuan | 0:ed2c77b37f59 | 36 | |
zenglingxuan | 0:ed2c77b37f59 | 37 | float timesitting; |
zenglingxuan | 0:ed2c77b37f59 | 38 | |
zenglingxuan | 0:ed2c77b37f59 | 39 | led1 = 1; |
zenglingxuan | 0:ed2c77b37f59 | 40 | led2 = 1; |
zenglingxuan | 0:ed2c77b37f59 | 41 | typingflag=0; |
zenglingxuan | 0:ed2c77b37f59 | 42 | typingtime=0; |
zenglingxuan | 0:ed2c77b37f59 | 43 | |
zenglingxuan | 0:ed2c77b37f59 | 44 | |
zenglingxuan | 0:ed2c77b37f59 | 45 | while(1) { |
zenglingxuan | 0:ed2c77b37f59 | 46 | if (xbee2.readable() && wire.readable()) { |
zenglingxuan | 0:ed2c77b37f59 | 47 | |
zenglingxuan | 0:ed2c77b37f59 | 48 | a = xbee2.getc(); |
zenglingxuan | 0:ed2c77b37f59 | 49 | lcd.putc(a); |
zenglingxuan | 0:ed2c77b37f59 | 50 | lcd.locate(0,1); |
zenglingxuan | 0:ed2c77b37f59 | 51 | lcd.printf("t=%f",t.read()); |
zenglingxuan | 0:ed2c77b37f59 | 52 | |
zenglingxuan | 0:ed2c77b37f59 | 53 | typingflag=wire.getc(); |
zenglingxuan | 0:ed2c77b37f59 | 54 | lcd.locate(2,0); |
zenglingxuan | 0:ed2c77b37f59 | 55 | lcd.printf("%d", (int) typingflag); |
zenglingxuan | 0:ed2c77b37f59 | 56 | |
zenglingxuan | 0:ed2c77b37f59 | 57 | if((int) typingflag == 1) |
zenglingxuan | 0:ed2c77b37f59 | 58 | { |
zenglingxuan | 0:ed2c77b37f59 | 59 | led1 = 0; |
zenglingxuan | 0:ed2c77b37f59 | 60 | typingtime++; |
zenglingxuan | 0:ed2c77b37f59 | 61 | wait(0.5); |
zenglingxuan | 0:ed2c77b37f59 | 62 | } |
zenglingxuan | 0:ed2c77b37f59 | 63 | |
zenglingxuan | 0:ed2c77b37f59 | 64 | |
zenglingxuan | 0:ed2c77b37f59 | 65 | if (a != alast) { |
zenglingxuan | 0:ed2c77b37f59 | 66 | if (a == '1') { |
zenglingxuan | 0:ed2c77b37f59 | 67 | t.start(); |
zenglingxuan | 0:ed2c77b37f59 | 68 | led1 = 0; |
zenglingxuan | 0:ed2c77b37f59 | 69 | } |
zenglingxuan | 0:ed2c77b37f59 | 70 | else { |
zenglingxuan | 0:ed2c77b37f59 | 71 | // if (alast == 1) { |
zenglingxuan | 0:ed2c77b37f59 | 72 | |
zenglingxuan | 0:ed2c77b37f59 | 73 | t.stop(); |
zenglingxuan | 0:ed2c77b37f59 | 74 | led2 = 0; |
zenglingxuan | 0:ed2c77b37f59 | 75 | timesitting = t.read(); |
zenglingxuan | 0:ed2c77b37f59 | 76 | lcd.cls(); |
zenglingxuan | 0:ed2c77b37f59 | 77 | lcd.locate(0,0); |
zenglingxuan | 0:ed2c77b37f59 | 78 | lcd.printf("%d", typingtime); |
zenglingxuan | 0:ed2c77b37f59 | 79 | lcd.locate(0,1); |
zenglingxuan | 0:ed2c77b37f59 | 80 | lcd.printf("%f",timesitting); |
zenglingxuan | 0:ed2c77b37f59 | 81 | |
zenglingxuan | 0:ed2c77b37f59 | 82 | |
zenglingxuan | 0:ed2c77b37f59 | 83 | t.reset(); |
zenglingxuan | 0:ed2c77b37f59 | 84 | typingtime = 0; |
zenglingxuan | 0:ed2c77b37f59 | 85 | wait(3); |
zenglingxuan | 0:ed2c77b37f59 | 86 | } // terminate else |
zenglingxuan | 0:ed2c77b37f59 | 87 | } // terminate if (a != alast) |
zenglingxuan | 0:ed2c77b37f59 | 88 | |
zenglingxuan | 0:ed2c77b37f59 | 89 | } // terminate if (xbee2.readable() && wire.readable()) |
zenglingxuan | 0:ed2c77b37f59 | 90 | |
zenglingxuan | 0:ed2c77b37f59 | 91 | |
zenglingxuan | 0:ed2c77b37f59 | 92 | |
zenglingxuan | 0:ed2c77b37f59 | 93 | |
zenglingxuan | 0:ed2c77b37f59 | 94 | alast = a; |
zenglingxuan | 0:ed2c77b37f59 | 95 | wait(0.8); |
zenglingxuan | 0:ed2c77b37f59 | 96 | lcd.cls(); |
zenglingxuan | 0:ed2c77b37f59 | 97 | led1 = 1; |
zenglingxuan | 0:ed2c77b37f59 | 98 | led2 = 1; |
zenglingxuan | 0:ed2c77b37f59 | 99 | } |
zenglingxuan | 0:ed2c77b37f59 | 100 | } |