mbed RPC_Serial for LabVIEW interface: http://mbed.org/cookbook/Interfacing-with-LabVIEW http://mbed.org/cookbook/Interfacing-Using-RPC Steps: *Compile RPC_Serial main *Copy bit file to mbed flash and reset *Run examples in LabVIEW

Dependencies:   C12832 MMA7660 RPCInterface mbed

Fork of RPC_Serial by Harris Junaid

Committer:
JonathanCaes
Date:
Wed May 13 07:42:37 2015 +0000
Revision:
1:e245b0b4d96c
Parent:
0:3ffd66df9efb
RPC

Who changed what in which revision?

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