Test
Dependencies: C12832 MMA7660 RPCInterface mbed
Fork of RPC_Serial by
main.cpp@1:e245b0b4d96c, 2015-05-13 (annotated)
- Committer:
- JonathanCaes
- Date:
- Wed May 13 07:42:37 2015 +0000
- Revision:
- 1:e245b0b4d96c
- Parent:
- 0:3ffd66df9efb
- Child:
- 2:5a18ea4b4077
RPC
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
JonathanCaes | 1:e245b0b4d96c | 1 | //Uses the measured z-acceleration to drive leds 2 and 3 of the mbed |
JonathanCaes | 1:e245b0b4d96c | 2 | |
harrisjunaid | 0:3ffd66df9efb | 3 | #include "mbed.h" |
JonathanCaes | 1:e245b0b4d96c | 4 | //accelerometer header file |
JonathanCaes | 1:e245b0b4d96c | 5 | #include "MMA7660.h" |
JonathanCaes | 1:e245b0b4d96c | 6 | //LCD screen header file |
JonathanCaes | 1:e245b0b4d96c | 7 | #include "C12832.h" |
JonathanCaes | 1:e245b0b4d96c | 8 | //include PRPC command file |
JonathanCaes | 1:e245b0b4d96c | 9 | #include "SerialRPCInterface.h" |
JonathanCaes | 1:e245b0b4d96c | 10 | |
JonathanCaes | 1:e245b0b4d96c | 11 | //default pin connections for LCD |
JonathanCaes | 1:e245b0b4d96c | 12 | C12832 lcd(p5, p7, p6, p8, p11); |
JonathanCaes | 1:e245b0b4d96c | 13 | //default pins for accelerometer |
JonathanCaes | 1:e245b0b4d96c | 14 | MMA7660 MMA(p28, p27); |
JonathanCaes | 1:e245b0b4d96c | 15 | // |
JonathanCaes | 1:e245b0b4d96c | 16 | float X = 0; |
JonathanCaes | 1:e245b0b4d96c | 17 | float Y = 0; |
JonathanCaes | 1:e245b0b4d96c | 18 | float Z = 0; |
JonathanCaes | 1:e245b0b4d96c | 19 | float ai1=0; |
JonathanCaes | 1:e245b0b4d96c | 20 | float ai2=0; |
JonathanCaes | 1:e245b0b4d96c | 21 | int alarm1 = 0; |
JonathanCaes | 1:e245b0b4d96c | 22 | int alarm2 = 0; |
JonathanCaes | 1:e245b0b4d96c | 23 | RPCVariable<float> rpc_ai1(&ai1,"ai1"); |
JonathanCaes | 1:e245b0b4d96c | 24 | |
JonathanCaes | 1:e245b0b4d96c | 25 | RPCVariable<float> rpc_ai2(&ai2,"ai2"); |
JonathanCaes | 1:e245b0b4d96c | 26 | |
JonathanCaes | 1:e245b0b4d96c | 27 | RPCVariable<int> rpc_alarm1(&alarm1,"alarm1"); |
JonathanCaes | 1:e245b0b4d96c | 28 | RPCVariable<int> rpc_alarm2(&alarm2,"alarm2"); |
JonathanCaes | 1:e245b0b4d96c | 29 | AnalogIn pot2(p19); |
JonathanCaes | 1:e245b0b4d96c | 30 | DigitalOut led(LED1); |
JonathanCaes | 1:e245b0b4d96c | 31 | AnalogIn pot1(p20); |
JonathanCaes | 1:e245b0b4d96c | 32 | DigitalOut led2(LED2); |
JonathanCaes | 1:e245b0b4d96c | 33 | |
JonathanCaes | 1:e245b0b4d96c | 34 | RPCVariable<float> RPCX(&X, "X"); |
JonathanCaes | 1:e245b0b4d96c | 35 | RPCVariable<float> RPCY(&Y, "Y"); |
JonathanCaes | 1:e245b0b4d96c | 36 | RPCVariable<float> RPCZ(&Z, "Z"); |
JonathanCaes | 1:e245b0b4d96c | 37 | SerialRPCInterface SerieleInterface(USBTX, USBRX); |
JonathanCaes | 1:e245b0b4d96c | 38 | DigitalOut connectionLed(LED1); |
JonathanCaes | 1:e245b0b4d96c | 39 | //pwm led 1 and 2 |
JonathanCaes | 1:e245b0b4d96c | 40 | PwmOut Zaxis_p(LED2); |
JonathanCaes | 1:e245b0b4d96c | 41 | PwmOut Zaxis_n(LED3); |
JonathanCaes | 1:e245b0b4d96c | 42 | //pwm signals for RGB LED |
JonathanCaes | 1:e245b0b4d96c | 43 | PwmOut r (p23); |
JonathanCaes | 1:e245b0b4d96c | 44 | PwmOut g (p24); |
JonathanCaes | 1:e245b0b4d96c | 45 | PwmOut b (p25); |
JonathanCaes | 1:e245b0b4d96c | 46 | |
JonathanCaes | 1:e245b0b4d96c | 47 | int main() { |
JonathanCaes | 1:e245b0b4d96c | 48 | |
JonathanCaes | 1:e245b0b4d96c | 49 | //clear lcd screen |
JonathanCaes | 1:e245b0b4d96c | 50 | lcd.cls(); |
JonathanCaes | 1:e245b0b4d96c | 51 | //update axis period |
JonathanCaes | 1:e245b0b4d96c | 52 | r.period(0.001); |
JonathanCaes | 1:e245b0b4d96c | 53 | //test connection to board |
JonathanCaes | 1:e245b0b4d96c | 54 | if (MMA.testConnection()) |
JonathanCaes | 1:e245b0b4d96c | 55 | connectionLed = 1; |
JonathanCaes | 1:e245b0b4d96c | 56 | |
harrisjunaid | 0:3ffd66df9efb | 57 | while(1) { |
JonathanCaes | 1:e245b0b4d96c | 58 | Zaxis_p = MMA.z(); |
JonathanCaes | 1:e245b0b4d96c | 59 | Zaxis_n = -MMA.z(); |
JonathanCaes | 1:e245b0b4d96c | 60 | r = MMA.x(); |
JonathanCaes | 1:e245b0b4d96c | 61 | g = MMA.y(); |
JonathanCaes | 1:e245b0b4d96c | 62 | b = MMA.z(); |
JonathanCaes | 1:e245b0b4d96c | 63 | lcd.locate(0,0); |
JonathanCaes | 1:e245b0b4d96c | 64 | lcd.printf("X as : %.2f", MMA.x()); |
JonathanCaes | 1:e245b0b4d96c | 65 | lcd.locate(0,10); |
JonathanCaes | 1:e245b0b4d96c | 66 | lcd.printf("Y as : %.2f", MMA.y()); |
JonathanCaes | 1:e245b0b4d96c | 67 | lcd.locate(0,20); |
JonathanCaes | 1:e245b0b4d96c | 68 | lcd.printf("Z as : %.2f", MMA.z()); |
JonathanCaes | 1:e245b0b4d96c | 69 | X = MMA.x(); |
JonathanCaes | 1:e245b0b4d96c | 70 | Y = MMA.y(); |
JonathanCaes | 1:e245b0b4d96c | 71 | Z = MMA.z(); |
JonathanCaes | 1:e245b0b4d96c | 72 | ai1 = pot2; |
JonathanCaes | 1:e245b0b4d96c | 73 | ai2 = pot1; |
JonathanCaes | 1:e245b0b4d96c | 74 | if(pot2 > 0.3) { |
JonathanCaes | 1:e245b0b4d96c | 75 | led = 1; |
JonathanCaes | 1:e245b0b4d96c | 76 | alarm1 = led; |
JonathanCaes | 1:e245b0b4d96c | 77 | } else { |
JonathanCaes | 1:e245b0b4d96c | 78 | led = 0; |
JonathanCaes | 1:e245b0b4d96c | 79 | alarm1 = led; |
JonathanCaes | 1:e245b0b4d96c | 80 | } |
JonathanCaes | 1:e245b0b4d96c | 81 | if(pot1 > 0.7) { |
JonathanCaes | 1:e245b0b4d96c | 82 | led2 = 1; |
JonathanCaes | 1:e245b0b4d96c | 83 | alarm2 = led2; |
JonathanCaes | 1:e245b0b4d96c | 84 | } else { |
JonathanCaes | 1:e245b0b4d96c | 85 | led2 = 0; |
JonathanCaes | 1:e245b0b4d96c | 86 | alarm2 = led2; |
JonathanCaes | 1:e245b0b4d96c | 87 | } |
harrisjunaid | 0:3ffd66df9efb | 88 | } |
JonathanCaes | 1:e245b0b4d96c | 89 | |
JonathanCaes | 1:e245b0b4d96c | 90 | } |