Test application for Freedom KL25Z, mouse driven by accelerometer and click with TSI interface

Dependencies:   MMA8451Q TSI USBDevice mbed

Fork of Airmouse by Frederic Thierry

Committer:
dglmgc
Date:
Thu Jun 09 01:22:12 2016 +0000
Revision:
1:2bdcfc75ee32
Parent:
0:a7df8e8cc00c
lab usb;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Future_FThierry 0:a7df8e8cc00c 1 #include "mbed.h"
dglmgc 1:2bdcfc75ee32 2 #include "USBKeyboard.h"
Future_FThierry 0:a7df8e8cc00c 3 #include "MMA8451Q.h"
Future_FThierry 0:a7df8e8cc00c 4 #include "TSISensor.h"
Future_FThierry 0:a7df8e8cc00c 5
Future_FThierry 0:a7df8e8cc00c 6 #define MMA8451_I2C_ADDRESS (0x1d<<1)
Future_FThierry 0:a7df8e8cc00c 7
dglmgc 1:2bdcfc75ee32 8 USBKeyboard teclado;
Future_FThierry 0:a7df8e8cc00c 9 Serial pc(USBTX, USBRX); // tx, rx
Future_FThierry 0:a7df8e8cc00c 10
Future_FThierry 0:a7df8e8cc00c 11 int main()
Future_FThierry 0:a7df8e8cc00c 12 {
Future_FThierry 0:a7df8e8cc00c 13 float click =0;
dglmgc 1:2bdcfc75ee32 14 float clickant = 0;
Future_FThierry 0:a7df8e8cc00c 15 int16_t x = 0;
Future_FThierry 0:a7df8e8cc00c 16 int16_t y = 0;
Future_FThierry 0:a7df8e8cc00c 17 TSISensor tsi;
Future_FThierry 0:a7df8e8cc00c 18 MMA8451Q acc(PTE25, PTE24, MMA8451_I2C_ADDRESS);
Future_FThierry 0:a7df8e8cc00c 19
Future_FThierry 0:a7df8e8cc00c 20 while (1) {
Future_FThierry 0:a7df8e8cc00c 21 x = -10*acc.getAccY();
Future_FThierry 0:a7df8e8cc00c 22 y = 10*acc.getAccX();
Future_FThierry 0:a7df8e8cc00c 23
Future_FThierry 0:a7df8e8cc00c 24 click=tsi.readPercentage();
Future_FThierry 0:a7df8e8cc00c 25 //pc.printf("%f\n",click);
dglmgc 1:2bdcfc75ee32 26 if(click < (clickant - 0.10) || click > (clickant + 0.10)) {
dglmgc 1:2bdcfc75ee32 27 if(x>0 && y > 0){
dglmgc 1:2bdcfc75ee32 28 if (click>0.80)
dglmgc 1:2bdcfc75ee32 29 teclado._putc(99);
dglmgc 1:2bdcfc75ee32 30
dglmgc 1:2bdcfc75ee32 31 if((click<0.30)&&(click>0))
dglmgc 1:2bdcfc75ee32 32 teclado._putc(97);
dglmgc 1:2bdcfc75ee32 33
dglmgc 1:2bdcfc75ee32 34 if((click<0.80)&&(click>0.30))
dglmgc 1:2bdcfc75ee32 35 teclado._putc(98);
dglmgc 1:2bdcfc75ee32 36 }
dglmgc 1:2bdcfc75ee32 37 if(x<0 && y > 0){
dglmgc 1:2bdcfc75ee32 38 if (click>0.80)
dglmgc 1:2bdcfc75ee32 39 teclado._putc(102);
dglmgc 1:2bdcfc75ee32 40
dglmgc 1:2bdcfc75ee32 41 if((click<0.30)&&(click>0))
dglmgc 1:2bdcfc75ee32 42 teclado._putc(100);
dglmgc 1:2bdcfc75ee32 43
dglmgc 1:2bdcfc75ee32 44 if((click<0.80)&&(click>0.30))
dglmgc 1:2bdcfc75ee32 45 teclado._putc(101);
dglmgc 1:2bdcfc75ee32 46 }
dglmgc 1:2bdcfc75ee32 47 if(x<0 && y < 0){
dglmgc 1:2bdcfc75ee32 48 if (click>0.80)
dglmgc 1:2bdcfc75ee32 49 teclado._putc(105);
dglmgc 1:2bdcfc75ee32 50
dglmgc 1:2bdcfc75ee32 51 if((click<0.30)&&(click>0))
dglmgc 1:2bdcfc75ee32 52 teclado._putc(103);
dglmgc 1:2bdcfc75ee32 53
dglmgc 1:2bdcfc75ee32 54 if((click<0.80)&&(click>0.30))
dglmgc 1:2bdcfc75ee32 55 teclado._putc(104);
dglmgc 1:2bdcfc75ee32 56 }
dglmgc 1:2bdcfc75ee32 57 if(x>0 && y < 0){
dglmgc 1:2bdcfc75ee32 58 if (click>0.80)
dglmgc 1:2bdcfc75ee32 59 teclado._putc(108);
dglmgc 1:2bdcfc75ee32 60
dglmgc 1:2bdcfc75ee32 61 if((click<0.30)&&(click>0))
dglmgc 1:2bdcfc75ee32 62 teclado._putc(106);
dglmgc 1:2bdcfc75ee32 63
dglmgc 1:2bdcfc75ee32 64 if((click<0.80)&&(click>0.30))
dglmgc 1:2bdcfc75ee32 65 teclado._putc(107);
dglmgc 1:2bdcfc75ee32 66 }
dglmgc 1:2bdcfc75ee32 67 if(x==0 && y < 0){
dglmgc 1:2bdcfc75ee32 68 if (click>0.80)
dglmgc 1:2bdcfc75ee32 69 teclado._putc(111);
dglmgc 1:2bdcfc75ee32 70
dglmgc 1:2bdcfc75ee32 71 if((click<0.30)&&(click>0))
dglmgc 1:2bdcfc75ee32 72 teclado._putc(109);
dglmgc 1:2bdcfc75ee32 73
dglmgc 1:2bdcfc75ee32 74 if((click<0.80)&&(click>0.30))
dglmgc 1:2bdcfc75ee32 75 teclado._putc(110);
dglmgc 1:2bdcfc75ee32 76 }
dglmgc 1:2bdcfc75ee32 77 if(x==0 && y > 0){
dglmgc 1:2bdcfc75ee32 78 if (click>0.80)
dglmgc 1:2bdcfc75ee32 79 teclado._putc(114);
dglmgc 1:2bdcfc75ee32 80
dglmgc 1:2bdcfc75ee32 81 if((click<0.30)&&(click>0))
dglmgc 1:2bdcfc75ee32 82 teclado._putc(112);
dglmgc 1:2bdcfc75ee32 83
dglmgc 1:2bdcfc75ee32 84 if((click<0.80)&&(click>0.30))
dglmgc 1:2bdcfc75ee32 85 teclado._putc(113);
dglmgc 1:2bdcfc75ee32 86 }
dglmgc 1:2bdcfc75ee32 87 if(x==0 && y == 0){
dglmgc 1:2bdcfc75ee32 88 if (click>0.80)
dglmgc 1:2bdcfc75ee32 89 teclado._putc(117);
dglmgc 1:2bdcfc75ee32 90
dglmgc 1:2bdcfc75ee32 91 if((click<0.30)&&(click>0))
dglmgc 1:2bdcfc75ee32 92 teclado._putc(115);
dglmgc 1:2bdcfc75ee32 93
dglmgc 1:2bdcfc75ee32 94 if((click<0.80)&&(click>0.30))
dglmgc 1:2bdcfc75ee32 95 teclado._putc(116);
dglmgc 1:2bdcfc75ee32 96 }
dglmgc 1:2bdcfc75ee32 97 if(x>0 && y == 0){
dglmgc 1:2bdcfc75ee32 98 if (click>0.80)
dglmgc 1:2bdcfc75ee32 99 teclado._putc(120);
dglmgc 1:2bdcfc75ee32 100
dglmgc 1:2bdcfc75ee32 101 if((click<0.30)&&(click>0))
dglmgc 1:2bdcfc75ee32 102 teclado._putc(118);
dglmgc 1:2bdcfc75ee32 103
dglmgc 1:2bdcfc75ee32 104 if((click<0.80)&&(click>0.30))
dglmgc 1:2bdcfc75ee32 105 teclado._putc(119);
dglmgc 1:2bdcfc75ee32 106 }
dglmgc 1:2bdcfc75ee32 107 if(x<0 && y == 0){
dglmgc 1:2bdcfc75ee32 108 if (click>0.80)
dglmgc 1:2bdcfc75ee32 109 teclado._putc(123);
dglmgc 1:2bdcfc75ee32 110
dglmgc 1:2bdcfc75ee32 111 if((click<0.30)&&(click>0))
dglmgc 1:2bdcfc75ee32 112 teclado._putc(121);
dglmgc 1:2bdcfc75ee32 113
dglmgc 1:2bdcfc75ee32 114 if((click<0.80)&&(click>0.30))
dglmgc 1:2bdcfc75ee32 115 teclado._putc(122);
dglmgc 1:2bdcfc75ee32 116 }
dglmgc 1:2bdcfc75ee32 117 }
dglmgc 1:2bdcfc75ee32 118
Future_FThierry 0:a7df8e8cc00c 119 wait(0.001);
dglmgc 1:2bdcfc75ee32 120 clickant = click;
Future_FThierry 0:a7df8e8cc00c 121
Future_FThierry 0:a7df8e8cc00c 122 }
Future_FThierry 0:a7df8e8cc00c 123 }