Bluetooth

Dependencies:   Motor mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "Motor.h"
00003 RawSerial  pc(USBTX, USBRX);
00004 RawSerial  dev(p13, p14);
00005 DigitalOut led1(LED1);
00006 DigitalOut led4(LED4);
00007 AnalogIn   temp(p15);
00008 
00009 Motor m(p23, p6, p5);
00010 
00011 float _temp; 
00012 float _speed = 0;
00013 void dev_recv()
00014 {
00015     led1 = !led1;
00016     while(dev.readable()) {
00017         char mode = dev.getc();
00018         if (mode == 'T') {
00019             _temp = temp;
00020             _temp = 38.0-27.5*_temp;
00021             dev.printf("%f\n",_temp);
00022  
00023         }
00024         if (mode=='V') {
00025             char type = dev.getc();
00026             if(type=='?') {
00027                 dev.printf("%f\n",_speed);
00028             }  
00029             if(type=='+') {
00030                 if (_speed < 1.0) {
00031                     _speed= _speed + 0.1;
00032                 }
00033                 m.speed(_speed);
00034                 dev.printf("New Speed %f\n",_speed);
00035             } 
00036             if(type=='-') {
00037                 if (_speed >= 0.1) _speed-= 0.1;
00038                 m.speed(_speed);
00039                 dev.printf("New Speed %f\n",_speed);
00040             }
00041         }
00042         
00043     }
00044 }
00045 
00046 void pc_recv()
00047 {
00048     led4 = !led4;
00049     while(pc.readable()) {
00050         dev.putc(pc.getc());
00051     }
00052 }
00053 
00054 int main()
00055 {
00056     pc.baud(9600);
00057     dev.baud(9600);
00058 
00059     pc.attach(&pc_recv, Serial::RxIrq);
00060     dev.attach(&dev_recv, Serial::RxIrq);
00061 
00062     while(1) {
00063         sleep();
00064     }
00065 }