Updated BAE RTOS

Dependencies:   mbed-rtos mbed

Fork of all_combined_week6 by Harshit Gupta

Committer:
greenroshks
Date:
Fri Sep 19 05:12:40 2014 +0000
Revision:
7:b3f876f605d9
Parent:
6:82153349cc9b
latest

Who changed what in which revision?

UserRevisionLine numberNew contents of line
harshit_felicity 0:cbe0ea884289 1 #include "slave.h"
greenroshks 3:9b597ed04ef4 2 #include "HK.h"
greenroshks 3:9b597ed04ef4 3
greenroshks 4:79b97f9cab00 4 extern struct SensorData Sensor;
harshit_felicity 0:cbe0ea884289 5 I2CSlave slave(p28,p27); //configuring pins p27, p28 as I2Cslave
greenroshks 3:9b597ed04ef4 6 Serial screen (USBTX,USBRX);
harshit_felicity 0:cbe0ea884289 7 void write_to_master(char send) //function to write data to master
harshit_felicity 0:cbe0ea884289 8 {
harshit_felicity 0:cbe0ea884289 9 int acknowledge;
greenroshks 3:9b597ed04ef4 10 int loopvariable4=1;
greenroshks 3:9b597ed04ef4 11 while(loopvariable4)
greenroshks 3:9b597ed04ef4 12 {
harshit_felicity 0:cbe0ea884289 13 acknowledge = slave.write(send); //sending the byte to master
harshit_felicity 0:cbe0ea884289 14 if(acknowledge==1)
harshit_felicity 0:cbe0ea884289 15 {
greenroshks 6:82153349cc9b 16 screen.printf(" acknowledge %d sent %u \n",acknowledge,send);
greenroshks 3:9b597ed04ef4 17 loopvariable4=0;
harshit_felicity 0:cbe0ea884289 18 }
greenroshks 3:9b597ed04ef4 19 }
harshit_felicity 0:cbe0ea884289 20 }
harshit_felicity 0:cbe0ea884289 21
greenroshks 3:9b597ed04ef4 22
greenroshks 3:9b597ed04ef4 23
greenroshks 3:9b597ed04ef4 24
greenroshks 3:9b597ed04ef4 25 void FUNC_I2C_SLAVE_MAIN(int iterations)
harshit_felicity 0:cbe0ea884289 26 {
greenroshks 6:82153349cc9b 27
greenroshks 3:9b597ed04ef4 28 screen.printf("\nSlave entered\n");
greenroshks 3:9b597ed04ef4 29 slave.address(slave_address); //assigning slave address
greenroshks 7:b3f876f605d9 30 slave.stop();
greenroshks 3:9b597ed04ef4 31 char Switch_Variable;
greenroshks 3:9b597ed04ef4 32
greenroshks 3:9b597ed04ef4 33
harshit_felicity 0:cbe0ea884289 34 int loopvariable1=1;
harshit_felicity 0:cbe0ea884289 35 int loopvariable2=0;
greenroshks 3:9b597ed04ef4 36 int loopvariable3=1;
harshit_felicity 0:cbe0ea884289 37 //initialising dummy sensor data
greenroshks 3:9b597ed04ef4 38
harshit_felicity 0:cbe0ea884289 39 while(loopvariable1)
harshit_felicity 0:cbe0ea884289 40 {
harshit_felicity 0:cbe0ea884289 41 //to read data from master
harshit_felicity 0:cbe0ea884289 42 if(slave.receive()==WriteGeneral) //checking if slave is addressed to write
harshit_felicity 0:cbe0ea884289 43 {
harshit_felicity 0:cbe0ea884289 44 Switch_Variable=slave.read(); //receiving data
greenroshks 3:9b597ed04ef4 45 screen.printf("switch variable=%d\n",Switch_Variable);
harshit_felicity 0:cbe0ea884289 46 slave.stop(); //reset slave to default receiving state
harshit_felicity 0:cbe0ea884289 47 loopvariable1=0;
harshit_felicity 0:cbe0ea884289 48 //to interpret and write data to master
harshit_felicity 0:cbe0ea884289 49 switch(Switch_Variable)
harshit_felicity 0:cbe0ea884289 50 {
greenroshks 6:82153349cc9b 51
greenroshks 6:82153349cc9b 52
greenroshks 6:82153349cc9b 53 case 1: printf("\nEntered switch\n");
greenroshks 6:82153349cc9b 54 while(loopvariable3)
greenroshks 3:9b597ed04ef4 55 {
harshit_felicity 0:cbe0ea884289 56 if(slave.receive()==ReadAddressed) //check if slave is addressed to read
harshit_felicity 0:cbe0ea884289 57 {
greenroshks 3:9b597ed04ef4 58 while(loopvariable2<iterations)
greenroshks 3:9b597ed04ef4 59 {
harshit_felicity 0:cbe0ea884289 60 if(loopvariable2%3==0)
harshit_felicity 0:cbe0ea884289 61 {
greenroshks 3:9b597ed04ef4 62 screen.printf("\nvoltage%d\n",loopvariable2/3);
greenroshks 3:9b597ed04ef4 63 write_to_master(Sensor.Voltage[loopvariable2/3]);
harshit_felicity 0:cbe0ea884289 64 }
harshit_felicity 0:cbe0ea884289 65 else if(loopvariable2%3==1)
harshit_felicity 0:cbe0ea884289 66 {
greenroshks 3:9b597ed04ef4 67 screen.printf("\ncurrent%d\n",loopvariable2/3);
greenroshks 3:9b597ed04ef4 68 write_to_master(Sensor.Current[loopvariable2/3]);
harshit_felicity 0:cbe0ea884289 69 }
harshit_felicity 0:cbe0ea884289 70 else if(loopvariable2%3==2)
harshit_felicity 0:cbe0ea884289 71 {
greenroshks 3:9b597ed04ef4 72 screen.printf("\ntemp%d\n",loopvariable2/3);
greenroshks 3:9b597ed04ef4 73 write_to_master(Sensor.Temperature[loopvariable2/3]);
harshit_felicity 0:cbe0ea884289 74 }
harshit_felicity 0:cbe0ea884289 75 loopvariable2++;
greenroshks 3:9b597ed04ef4 76 }//while(loopvariable2<30)
greenroshks 6:82153349cc9b 77 printf("\nExited i2c while loop\n");
greenroshks 3:9b597ed04ef4 78 slave.stop();
greenroshks 3:9b597ed04ef4 79 loopvariable3=0;
greenroshks 3:9b597ed04ef4 80 }//if(read addressed)
greenroshks 3:9b597ed04ef4 81
greenroshks 3:9b597ed04ef4 82 }//while(loopvariable3)
greenroshks 3:9b597ed04ef4 83
harshit_felicity 0:cbe0ea884289 84 break;
greenroshks 6:82153349cc9b 85 case 2 : screen.printf(" telecommand 2\n");
harshit_felicity 0:cbe0ea884289 86 break;
harshit_felicity 0:cbe0ea884289 87
harshit_felicity 0:cbe0ea884289 88 }//switch case ends
harshit_felicity 0:cbe0ea884289 89 }
harshit_felicity 0:cbe0ea884289 90 }
greenroshks 6:82153349cc9b 91 screen.printf("\nexited slave function\n");
harshit_felicity 0:cbe0ea884289 92 }
greenroshks 3:9b597ed04ef4 93