![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Wireless
Dependencies: C12832 MMA7660 RPCInterface TextLCD mbed
Fork of RPC_Serial by
main.cpp@2:f1553e2737c9, 2015-05-20 (annotated)
- Committer:
- Bramvr
- Date:
- Wed May 20 08:24:08 2015 +0000
- Revision:
- 2:f1553e2737c9
- Parent:
- 1:e245b0b4d96c
Wireless
Who changed what in which revision?
User | Revision | Line number | New 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 | } |