Wireless

Dependencies:   C12832 MMA7660 RPCInterface TextLCD mbed

Fork of RPC_Serial by Jonathan Caes

Committer:
Bramvr
Date:
Wed May 20 08:24:08 2015 +0000
Revision:
2:f1553e2737c9
Parent:
1:e245b0b4d96c
Wireless

Who changed what in which revision?

UserRevisionLine numberNew contents of line
harrisjunaid 0:3ffd66df9efb 1 #include "mbed.h"
JonathanCaes 1:e245b0b4d96c 2 //include PRPC command file
JonathanCaes 1:e245b0b4d96c 3 #include "SerialRPCInterface.h"
Bramvr 2:f1553e2737c9 4 //LCD include
Bramvr 2:f1553e2737c9 5 #include "TextLCD.h"
JonathanCaes 1:e245b0b4d96c 6
Bramvr 2:f1553e2737c9 7 SerialRPCInterface SerieleInterface(USBTX, USBRX);
Bramvr 2:f1553e2737c9 8 Serial uart(p9, p10); //tx, rx
Bramvr 2:f1553e2737c9 9 DigitalOut myled1(LED1);
Bramvr 2:f1553e2737c9 10 DigitalOut myled2(LED2);
Bramvr 2:f1553e2737c9 11 DigitalOut Pulsout(p28);
Bramvr 2:f1553e2737c9 12 DigitalOut Transmit(p8);
Bramvr 2:f1553e2737c9 13 AnalogIn Signaalsterkte(p19);
Bramvr 2:f1553e2737c9 14 AnalogIn LDRin(p20);
Bramvr 2:f1553e2737c9 15 DigitalIn Modepin(p11);
Bramvr 2:f1553e2737c9 16 PwmOut PWMLed(p21);
Bramvr 2:f1553e2737c9 17 TextLCD lcd(p30, p29, p28, p27, p26, p25, TextLCD::LCD20x4); // rs, e, d4-d7
JonathanCaes 1:e245b0b4d96c 18
Bramvr 2:f1553e2737c9 19 char Mode;
Bramvr 2:f1553e2737c9 20 float signaal;
Bramvr 2:f1553e2737c9 21 int LDR;
Bramvr 2:f1553e2737c9 22 char dataRX;
Bramvr 2:f1553e2737c9 23 char crcRX;
Bramvr 2:f1553e2737c9 24 char adresRX;
Bramvr 2:f1553e2737c9 25 int dataOK;
Bramvr 2:f1553e2737c9 26 int counter;
Bramvr 2:f1553e2737c9 27 int sturen;
Bramvr 2:f1553e2737c9 28 char adresTX;
Bramvr 2:f1553e2737c9 29 char dataTX;
Bramvr 2:f1553e2737c9 30 char crcTX;
Bramvr 2:f1553e2737c9 31 int PWMLabview;
Bramvr 2:f1553e2737c9 32 int timer;
JonathanCaes 1:e245b0b4d96c 33
JonathanCaes 1:e245b0b4d96c 34
Bramvr 2:f1553e2737c9 35 RPCVariable<int> rpc_LDR(&LDR,"LDR");
Bramvr 2:f1553e2737c9 36 RPCVariable<float> rpc_signaal(&signaal,"signaal");
Bramvr 2:f1553e2737c9 37 RPCVariable<int> rpc_PWMLabview(&PWMLabview,"PWMLabview");
Bramvr 2:f1553e2737c9 38
Bramvr 2:f1553e2737c9 39 //Prototypes functies
Bramvr 2:f1553e2737c9 40 char receive (char adreskarakter);
Bramvr 2:f1553e2737c9 41 void transmit(char adresTX, char dataTX);
JonathanCaes 1:e245b0b4d96c 42
Bramvr 2:f1553e2737c9 43 //********************************************
Bramvr 2:f1553e2737c9 44 //*******************Main*********************
Bramvr 2:f1553e2737c9 45 //********************************************
Bramvr 2:f1553e2737c9 46 int main()
Bramvr 2:f1553e2737c9 47 {
Bramvr 2:f1553e2737c9 48 PWMLed.period_us(10);
Bramvr 2:f1553e2737c9 49 uart.baud(4800);
Bramvr 2:f1553e2737c9 50 if (Modepin)
Bramvr 2:f1553e2737c9 51 {
Bramvr 2:f1553e2737c9 52 myled1 = 1;
Bramvr 2:f1553e2737c9 53 myled2 = 0;
Bramvr 2:f1553e2737c9 54 Mode = 1;
Bramvr 2:f1553e2737c9 55 }
Bramvr 2:f1553e2737c9 56 else
Bramvr 2:f1553e2737c9 57 {
Bramvr 2:f1553e2737c9 58 myled1 = 0;
Bramvr 2:f1553e2737c9 59 myled2 = 1;
Bramvr 2:f1553e2737c9 60 Mode = 0;
Bramvr 2:f1553e2737c9 61 }
Bramvr 2:f1553e2737c9 62 lcd.cls();
Bramvr 2:f1553e2737c9 63 timer = 1000;
Bramvr 2:f1553e2737c9 64 while (1)
Bramvr 2:f1553e2737c9 65 {
Bramvr 2:f1553e2737c9 66 //Pin aan GND is Labview
Bramvr 2:f1553e2737c9 67 if(Mode == 1)
Bramvr 2:f1553e2737c9 68 {
Bramvr 2:f1553e2737c9 69 transmit('J',LDRin * 255);
Bramvr 2:f1553e2737c9 70 }
Bramvr 2:f1553e2737c9 71 else //Labview
Bramvr 2:f1553e2737c9 72 {
Bramvr 2:f1553e2737c9 73 signaal = (Signaalsterkte * 207);
Bramvr 2:f1553e2737c9 74 if(signaal >= 100)
Bramvr 2:f1553e2737c9 75 {
Bramvr 2:f1553e2737c9 76 signaal = 100;
Bramvr 2:f1553e2737c9 77 }
Bramvr 2:f1553e2737c9 78 LDR = receive('J');
Bramvr 2:f1553e2737c9 79
Bramvr 2:f1553e2737c9 80 if(timer == 1000)
Bramvr 2:f1553e2737c9 81 {
Bramvr 2:f1553e2737c9 82 lcd.locate(0,0);
Bramvr 2:f1553e2737c9 83 lcd.printf("Signaal: %.0f%c",signaal, 37);
Bramvr 2:f1553e2737c9 84 lcd.locate(0,1);
Bramvr 2:f1553e2737c9 85 lcd.printf("LDR: %i ",LDR);
Bramvr 2:f1553e2737c9 86 timer = 0;
Bramvr 2:f1553e2737c9 87 }
Bramvr 2:f1553e2737c9 88 timer ++;
Bramvr 2:f1553e2737c9 89 }
Bramvr 2:f1553e2737c9 90 }
Bramvr 2:f1553e2737c9 91 }
Bramvr 2:f1553e2737c9 92
Bramvr 2:f1553e2737c9 93 char receive (char adreskarakter)
Bramvr 2:f1553e2737c9 94 {
Bramvr 2:f1553e2737c9 95 if(uart.readable()) {
Bramvr 2:f1553e2737c9 96 if (counter == 0)
Bramvr 2:f1553e2737c9 97 {
Bramvr 2:f1553e2737c9 98 adresRX = (uart.getc());
Bramvr 2:f1553e2737c9 99
Bramvr 2:f1553e2737c9 100 if(adresRX == adreskarakter)
Bramvr 2:f1553e2737c9 101 {
Bramvr 2:f1553e2737c9 102 counter ++;
Bramvr 2:f1553e2737c9 103 }
Bramvr 2:f1553e2737c9 104 else
Bramvr 2:f1553e2737c9 105 {
Bramvr 2:f1553e2737c9 106 counter = 0;
Bramvr 2:f1553e2737c9 107 }
Bramvr 2:f1553e2737c9 108
Bramvr 2:f1553e2737c9 109 }
Bramvr 2:f1553e2737c9 110 else if (counter == 1)
Bramvr 2:f1553e2737c9 111 {
Bramvr 2:f1553e2737c9 112 dataRX = (uart.getc());
Bramvr 2:f1553e2737c9 113 counter ++;
Bramvr 2:f1553e2737c9 114 }
Bramvr 2:f1553e2737c9 115 else if (counter == 2)
Bramvr 2:f1553e2737c9 116 {
Bramvr 2:f1553e2737c9 117 crcRX = (uart.getc());
Bramvr 2:f1553e2737c9 118 counter = 0;
Bramvr 2:f1553e2737c9 119 }
Bramvr 2:f1553e2737c9 120
Bramvr 2:f1553e2737c9 121 if(adresRX == adreskarakter && (adresRX xor dataRX) == crcRX)
Bramvr 2:f1553e2737c9 122 {
Bramvr 2:f1553e2737c9 123 dataOK = int(dataRX);
Bramvr 2:f1553e2737c9 124 }
Bramvr 2:f1553e2737c9 125 }
Bramvr 2:f1553e2737c9 126 return dataOK;
Bramvr 2:f1553e2737c9 127 }
Bramvr 2:f1553e2737c9 128
Bramvr 2:f1553e2737c9 129 void transmit(char adresTX, char dataTX)
Bramvr 2:f1553e2737c9 130 {
Bramvr 2:f1553e2737c9 131 Transmit = 1;
JonathanCaes 1:e245b0b4d96c 132
Bramvr 2:f1553e2737c9 133 crcTX = (adresTX xor dataTX);
Bramvr 2:f1553e2737c9 134 uart.printf("%c%c%c", adresTX, dataTX, crcTX);
JonathanCaes 1:e245b0b4d96c 135
Bramvr 2:f1553e2737c9 136 Transmit = 0;
Bramvr 2:f1553e2737c9 137 }