![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Wireless
Dependencies: C12832 MMA7660 RPCInterface TextLCD mbed
Fork of RPC_Serial by
main.cpp
- Committer:
- Bramvr
- Date:
- 2015-05-20
- Revision:
- 2:f1553e2737c9
- Parent:
- 1:e245b0b4d96c
File content as of revision 2:f1553e2737c9:
#include "mbed.h" //include PRPC command file #include "SerialRPCInterface.h" //LCD include #include "TextLCD.h" SerialRPCInterface SerieleInterface(USBTX, USBRX); Serial uart(p9, p10); //tx, rx DigitalOut myled1(LED1); DigitalOut myled2(LED2); DigitalOut Pulsout(p28); DigitalOut Transmit(p8); AnalogIn Signaalsterkte(p19); AnalogIn LDRin(p20); DigitalIn Modepin(p11); PwmOut PWMLed(p21); TextLCD lcd(p30, p29, p28, p27, p26, p25, TextLCD::LCD20x4); // rs, e, d4-d7 char Mode; float signaal; int LDR; char dataRX; char crcRX; char adresRX; int dataOK; int counter; int sturen; char adresTX; char dataTX; char crcTX; int PWMLabview; int timer; RPCVariable<int> rpc_LDR(&LDR,"LDR"); RPCVariable<float> rpc_signaal(&signaal,"signaal"); RPCVariable<int> rpc_PWMLabview(&PWMLabview,"PWMLabview"); //Prototypes functies char receive (char adreskarakter); void transmit(char adresTX, char dataTX); //******************************************** //*******************Main********************* //******************************************** int main() { PWMLed.period_us(10); uart.baud(4800); if (Modepin) { myled1 = 1; myled2 = 0; Mode = 1; } else { myled1 = 0; myled2 = 1; Mode = 0; } lcd.cls(); timer = 1000; while (1) { //Pin aan GND is Labview if(Mode == 1) { transmit('J',LDRin * 255); } else //Labview { signaal = (Signaalsterkte * 207); if(signaal >= 100) { signaal = 100; } LDR = receive('J'); if(timer == 1000) { lcd.locate(0,0); lcd.printf("Signaal: %.0f%c",signaal, 37); lcd.locate(0,1); lcd.printf("LDR: %i ",LDR); timer = 0; } timer ++; } } } char receive (char adreskarakter) { if(uart.readable()) { if (counter == 0) { adresRX = (uart.getc()); if(adresRX == adreskarakter) { counter ++; } else { counter = 0; } } else if (counter == 1) { dataRX = (uart.getc()); counter ++; } else if (counter == 2) { crcRX = (uart.getc()); counter = 0; } if(adresRX == adreskarakter && (adresRX xor dataRX) == crcRX) { dataOK = int(dataRX); } } return dataOK; } void transmit(char adresTX, char dataTX) { Transmit = 1; crcTX = (adresTX xor dataTX); uart.printf("%c%c%c", adresTX, dataTX, crcTX); Transmit = 0; }