This program is communication with MMA7660 and LM75B. First receive sensor value of MMA7660 and LM75B. And MMA7660 value is control LED 2, 3, 4. LM75B is send another device.
Dependencies: C12832 LM75B MMA7660 mbed-rtos mbed
main.cpp
- Committer:
- akinansori
- Date:
- 2015-01-19
- Revision:
- 0:c49d67f5d839
File content as of revision 0:c49d67f5d839:
#include "mbed.h" #include "LM75B.h" #include "C12832.h" #include "rtos.h" #include "MMA7660.h" //3-Axis Sensor port setting MMA7660 MMA(p28, p27); //Temperature Sensor port setting LM75B sensor(p28,p27); //LED setting connecting 3-Axis Sensor DigitalOut MMA_X(LED2); DigitalOut MMA_Y(LED3); DigitalOut MMA_Z(LED4); //Serial port setting with PC Serial pc(USBTX,USBRX); //LCD port setting C12832 lcd(p5, p7, p6, p8, p11); //LED setting connecting Temperature Sensor DigitalOut led1(LED1); //CAN port setting CAN can1(p9, p10); char counter, counter1, enter; float temp; float sensor_1[3]; //X-Axis thread void led1_thread(void const *args){ MMA_X = 0; while(1){ sensor_1[0]=(float)MMA.x(); if(sensor_1[0]>0.5) { MMA_X = 1; wait(1); MMA_X = 0; } Thread::wait(100); } } //Y-Axis thread void led2_thread(void const *args){ MMA_Y = 0; while(1){ sensor_1[1]=(float)MMA.y(); if(sensor_1[1]>0.5) { MMA_Y = 1; wait(1); MMA_Y = 0; } Thread::wait(100); } } //Z-Axis thread void led3_thread(void const *args){ MMA_Z = 0; while(1){ sensor_1[2]=(float)MMA.z(); if(sensor_1[2]<0.5) { MMA_Z = 1; wait(1); MMA_Z = 0; } Thread::wait(100); } } //Float to Integer int getInteger(float n) { return (int)n; } //Getting Fracting of Float int getFraction(float n) { float a; a = n-getInteger(n); a = a*100; return (int)a; } int main() { //Declare thread of 3-Axis Thread thread1(led1_thread); Thread thread2(led2_thread); Thread thread3(led3_thread); //Check connecting of 3-Axis if (MMA.testConnection()) printf("Sensor connect \n"); while(1){ temp=sensor.read(); counter=getInteger(temp); counter1=getFraction(temp); enter='1'; lcd.cls(); lcd.locate(0,3); lcd.printf("Temp = %.3f\n", temp); can1.write(CANMessage(1337, &counter, 1)); wait(0.2); can1.write(CANMessage(1337, &counter1, 1)); wait(0.2); can1.write(CANMessage(1337, &enter, 1)); printf("Message sent : %d.%d \n", counter, counter1); led1 = !led1; wait(0.2); } }