works with chairdetect and listening

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?

UserRevisionLine numberNew 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 }