Toshihisa T
/
S1315FLogger
Skytraq S1315F-RAW-EVK Logger
libT/mbed/libT_getAcc.c@2:7eb11afe02bd, 2010-12-19 (annotated)
- Committer:
- tosihisa
- Date:
- Sun Dec 19 09:11:48 2010 +0000
- Revision:
- 2:7eb11afe02bd
- Parent:
- 0:e0ec137da369
Add \"SYSTEM RESTART\" at boot time.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tosihisa | 0:e0ec137da369 | 1 | |
tosihisa | 0:e0ec137da369 | 2 | |
tosihisa | 0:e0ec137da369 | 3 | extern "C" { |
tosihisa | 0:e0ec137da369 | 4 | static int libT_getAccTOmV(unsigned long Val,long *mV); |
tosihisa | 0:e0ec137da369 | 5 | int libT_getAcc1dot5G(unsigned long ADval,long *g); |
tosihisa | 0:e0ec137da369 | 6 | int libT_getAcc6G(unsigned long ADval,long *g); |
tosihisa | 0:e0ec137da369 | 7 | } |
tosihisa | 0:e0ec137da369 | 8 | |
tosihisa | 0:e0ec137da369 | 9 | |
tosihisa | 0:e0ec137da369 | 10 | static int libT_getAccTOmV(unsigned long Val,long *mV) |
tosihisa | 0:e0ec137da369 | 11 | { |
tosihisa | 0:e0ec137da369 | 12 | *mV = 0; |
tosihisa | 0:e0ec137da369 | 13 | |
tosihisa | 0:e0ec137da369 | 14 | /* AnalogIn = 1mV = 19.85939393939394 */ |
tosihisa | 0:e0ec137da369 | 15 | if(Val >= 32767UL){ |
tosihisa | 0:e0ec137da369 | 16 | *mV = ((Val - 32767UL) * 100UL) / 1985UL; |
tosihisa | 0:e0ec137da369 | 17 | *mV = 0 - *mV; |
tosihisa | 0:e0ec137da369 | 18 | } else { |
tosihisa | 0:e0ec137da369 | 19 | *mV = ((32767UL - Val) * 100UL) / 1985UL; |
tosihisa | 0:e0ec137da369 | 20 | } |
tosihisa | 0:e0ec137da369 | 21 | return 0; |
tosihisa | 0:e0ec137da369 | 22 | } |
tosihisa | 0:e0ec137da369 | 23 | |
tosihisa | 0:e0ec137da369 | 24 | int libT_getAcc1dot5G(unsigned long ADval,long *g) |
tosihisa | 0:e0ec137da369 | 25 | { |
tosihisa | 0:e0ec137da369 | 26 | long mV = 0; |
tosihisa | 0:e0ec137da369 | 27 | libT_getAccTOmV(ADval,&mV); /* A/D value to mV */ |
tosihisa | 0:e0ec137da369 | 28 | *g = (long)(mV / 8); /* 0.01g units */ |
tosihisa | 0:e0ec137da369 | 29 | return 0; |
tosihisa | 0:e0ec137da369 | 30 | } |
tosihisa | 0:e0ec137da369 | 31 | |
tosihisa | 0:e0ec137da369 | 32 | int libT_getAcc6G(unsigned long ADval,long *g) |
tosihisa | 0:e0ec137da369 | 33 | { |
tosihisa | 0:e0ec137da369 | 34 | long mV = 0; |
tosihisa | 0:e0ec137da369 | 35 | libT_getAccTOmV(ADval,&mV); /* A/D value to mV */ |
tosihisa | 0:e0ec137da369 | 36 | *g = (long)(mV / 2); /* 0.01g units */ |
tosihisa | 0:e0ec137da369 | 37 | return 0; |
tosihisa | 0:e0ec137da369 | 38 | } |
tosihisa | 0:e0ec137da369 | 39 | |
tosihisa | 0:e0ec137da369 | 40 | #if 0 |
tosihisa | 0:e0ec137da369 | 41 | int main(void) |
tosihisa | 0:e0ec137da369 | 42 | { |
tosihisa | 0:e0ec137da369 | 43 | long g; |
tosihisa | 0:e0ec137da369 | 44 | |
tosihisa | 0:e0ec137da369 | 45 | libT_getAcc1dot5G(22767UL,&g); |
tosihisa | 0:e0ec137da369 | 46 | if(g >= 0){ |
tosihisa | 0:e0ec137da369 | 47 | printf("1.5g g(DOWN)=%ld.%02ld\n",g/100,g%100); |
tosihisa | 0:e0ec137da369 | 48 | } else { |
tosihisa | 0:e0ec137da369 | 49 | g = g * -1; |
tosihisa | 0:e0ec137da369 | 50 | printf("1.5g g(UP)=%ld.%02ld\n",g/100,g%100); |
tosihisa | 0:e0ec137da369 | 51 | } |
tosihisa | 0:e0ec137da369 | 52 | libT_getAcc6G(22767UL,&g); |
tosihisa | 0:e0ec137da369 | 53 | if(g >= 0){ |
tosihisa | 0:e0ec137da369 | 54 | printf("6g g(DOWN)=%ld.%02ld\n",g/100,g%100); |
tosihisa | 0:e0ec137da369 | 55 | } else { |
tosihisa | 0:e0ec137da369 | 56 | g = g * -1; |
tosihisa | 0:e0ec137da369 | 57 | printf("6g g(UP)=%ld.%02ld\n",g/100,g%100); |
tosihisa | 0:e0ec137da369 | 58 | } |
tosihisa | 0:e0ec137da369 | 59 | return 0; |
tosihisa | 0:e0ec137da369 | 60 | } |
tosihisa | 0:e0ec137da369 | 61 | #endif |