B.3 : THE 6 HOUR PROGRAM WITH 1 PPS SIGNAL THE MASTER TO BE CONNECTED TO 11 PIN.

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 
00002 #include "problemb1.h"
00003 
00004 //void Timer2_IRQHandler(void);
00005 
00006 //Serial pc(p9,p10);
00007 
00008 
00009 
00010 void hello(void) {
00011     timeval t;
00012     getTime(&t);
00013     pc.printf(" \n Seconds = %d, usec = %d", t.tv_sec,t.tv_usec);
00014 }
00015 
00016 
00017 Ticker debug;
00018 static struct pt pt1,pt2,pt3;
00019 int main() {
00020  sync.baud(460800);
00021  pc.baud(115200);
00022 wait(2); 
00023 
00024     pc.printf("ENTERING MAIN JOBS\n");
00025    
00026     initialSetup();
00027 
00028    
00029     int p;
00030 
00031 // 1 PPS 
00032     pps.tv_sec = 10; 
00033     pps.tv_usec = 700000; 
00034      //ideal_trg_time[0].tv_sec = 10; 
00035       //ideal_trg_time[0].tv_usec  =700000; 
00036       
00037    runAtTime(&pinToggle,&pps); 
00038     
00039     myled = 1; 
00040     //On any sync request from slave, respond to it
00041     sync.attach(&resp_sync_request);
00042 
00043    
00044     timeval t;
00045     t.tv_sec = 5;
00046     t.tv_usec = 34;
00047    
00048     t.tv_sec =4;
00049     t.tv_usec =0;
00050    
00051 
00052 
00053     timeval rt;
00054 
00055    //runAtTrigger(&reportToggle);
00056 
00057 
00058     char c;
00059     int i;
00060     unsigned int tt;
00061     union {
00062         timeval t;
00063         char BYTE[8];
00064     } ttt;
00065     while (1) {
00066         // update(&pt1);
00067         //  scheduleRunAtTime(&pt2);
00068 //pc.printf("WHILE IN MAIN  \n");
00069         // wait(1);
00070         //getTime(&t);
00071         //pc.printf(" \n Seconds = %d, usec = %d", t.tv_sec,t.tv_usec);
00072 //START:
00073         if (pc.readable()) {
00074             c ='k';
00075             i=0;
00076             tt=0;
00077          //   pc.printf("RECIVED DATA FROM DSEERIAL\n");
00078             while (pc.readable() && (c !='S'))
00079                 c=pc.getc();
00080             c=pc.getc();
00081             while (pc.readable() &&(c !='E')) {
00082                 if (c!=' ') {
00083                     tt=tt*10+atoi(&c);
00084                 }
00085                 c  = pc.getc();
00086             }
00087 
00088             while (pc.readable())
00089                 c = pc.getc();
00090 
00091             if (tt>= NUM_MICRO_SEC) {
00092                 ttt.t.tv_sec = tt/NUM_MICRO_SEC;
00093                 ttt.t.tv_usec = tt - ttt.t.tv_sec*NUM_MICRO_SEC;
00094             } else {
00095                 ttt.t.tv_sec =0; //less than a sec
00096                 ttt.t.tv_usec = tt;
00097             }
00098             serial2.putc(ttt.BYTE[0]);
00099             serial2.putc(ttt.BYTE[1]);
00100             serial2.putc(ttt.BYTE[2]);
00101             serial2.putc(ttt.BYTE[3]);
00102             serial2.putc(ttt.BYTE[4]);
00103             serial2.putc(ttt.BYTE[5]);
00104             serial2.putc(ttt.BYTE[6]);
00105             serial2.putc(ttt.BYTE[7]);
00106             //runAtTime(&pinToggle, &ttt.t);
00107             //ideal_trg_time.tv_sec = ttt.t.tv_sec;
00108             //ideal_trg_time.tv_usec = ttt.t.tv_usec;
00109             pc.printf("DATA RECV :%d SEC %d AND MICRO %d \n",tt,ttt.t.tv_sec,ttt.t.tv_usec);
00110             /*trig.mode(PullDown); 
00111             wait(2); 
00112             trig.mode(PullUp); 
00113             wait(2); 
00114             trig.mode(PullDown); 
00115             */
00116         }
00117 
00118      
00119 
00120     }
00121 
00122 }