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

Dependencies:   mbed

Committer:
manujose
Date:
Tue Dec 14 23:26:02 2010 +0000
Revision:
1:9efda6a3f83c
Parent:
0:e6964ff1bbcc
hello

Who changed what in which revision?

UserRevisionLine numberNew contents of line
manujose 0:e6964ff1bbcc 1
manujose 0:e6964ff1bbcc 2 #include "problemb1.h"
manujose 0:e6964ff1bbcc 3
manujose 0:e6964ff1bbcc 4 //void Timer2_IRQHandler(void);
manujose 0:e6964ff1bbcc 5
manujose 0:e6964ff1bbcc 6 //Serial pc(p9,p10);
manujose 0:e6964ff1bbcc 7
manujose 0:e6964ff1bbcc 8
manujose 0:e6964ff1bbcc 9
manujose 0:e6964ff1bbcc 10 void hello(void) {
manujose 0:e6964ff1bbcc 11 timeval t;
manujose 0:e6964ff1bbcc 12 getTime(&t);
manujose 0:e6964ff1bbcc 13 pc.printf(" \n Seconds = %d, usec = %d", t.tv_sec,t.tv_usec);
manujose 0:e6964ff1bbcc 14 }
manujose 0:e6964ff1bbcc 15
manujose 0:e6964ff1bbcc 16
manujose 0:e6964ff1bbcc 17 Ticker debug;
manujose 0:e6964ff1bbcc 18 static struct pt pt1,pt2,pt3;
manujose 0:e6964ff1bbcc 19 int main() {
manujose 0:e6964ff1bbcc 20 sync.baud(460800);
manujose 1:9efda6a3f83c 21 pc.baud(115200);
manujose 0:e6964ff1bbcc 22 wait(2);
manujose 0:e6964ff1bbcc 23
manujose 0:e6964ff1bbcc 24 pc.printf("ENTERING MAIN JOBS\n");
manujose 0:e6964ff1bbcc 25
manujose 0:e6964ff1bbcc 26 initialSetup();
manujose 0:e6964ff1bbcc 27
manujose 0:e6964ff1bbcc 28
manujose 0:e6964ff1bbcc 29 int p;
manujose 0:e6964ff1bbcc 30
manujose 0:e6964ff1bbcc 31 // 1 PPS
manujose 0:e6964ff1bbcc 32 pps.tv_sec = 10;
manujose 1:9efda6a3f83c 33 pps.tv_usec = 700000;
manujose 1:9efda6a3f83c 34 //ideal_trg_time[0].tv_sec = 10;
manujose 1:9efda6a3f83c 35 //ideal_trg_time[0].tv_usec =700000;
manujose 0:e6964ff1bbcc 36
manujose 0:e6964ff1bbcc 37 runAtTime(&pinToggle,&pps);
manujose 0:e6964ff1bbcc 38
manujose 1:9efda6a3f83c 39 myled = 1;
manujose 0:e6964ff1bbcc 40 //On any sync request from slave, respond to it
manujose 0:e6964ff1bbcc 41 sync.attach(&resp_sync_request);
manujose 0:e6964ff1bbcc 42
manujose 0:e6964ff1bbcc 43
manujose 0:e6964ff1bbcc 44 timeval t;
manujose 0:e6964ff1bbcc 45 t.tv_sec = 5;
manujose 0:e6964ff1bbcc 46 t.tv_usec = 34;
manujose 0:e6964ff1bbcc 47
manujose 0:e6964ff1bbcc 48 t.tv_sec =4;
manujose 0:e6964ff1bbcc 49 t.tv_usec =0;
manujose 0:e6964ff1bbcc 50
manujose 0:e6964ff1bbcc 51
manujose 0:e6964ff1bbcc 52
manujose 0:e6964ff1bbcc 53 timeval rt;
manujose 0:e6964ff1bbcc 54
manujose 1:9efda6a3f83c 55 //runAtTrigger(&reportToggle);
manujose 0:e6964ff1bbcc 56
manujose 0:e6964ff1bbcc 57
manujose 0:e6964ff1bbcc 58 char c;
manujose 0:e6964ff1bbcc 59 int i;
manujose 0:e6964ff1bbcc 60 unsigned int tt;
manujose 0:e6964ff1bbcc 61 union {
manujose 0:e6964ff1bbcc 62 timeval t;
manujose 0:e6964ff1bbcc 63 char BYTE[8];
manujose 0:e6964ff1bbcc 64 } ttt;
manujose 0:e6964ff1bbcc 65 while (1) {
manujose 0:e6964ff1bbcc 66 // update(&pt1);
manujose 0:e6964ff1bbcc 67 // scheduleRunAtTime(&pt2);
manujose 0:e6964ff1bbcc 68 //pc.printf("WHILE IN MAIN \n");
manujose 0:e6964ff1bbcc 69 // wait(1);
manujose 0:e6964ff1bbcc 70 //getTime(&t);
manujose 0:e6964ff1bbcc 71 //pc.printf(" \n Seconds = %d, usec = %d", t.tv_sec,t.tv_usec);
manujose 0:e6964ff1bbcc 72 //START:
manujose 0:e6964ff1bbcc 73 if (pc.readable()) {
manujose 0:e6964ff1bbcc 74 c ='k';
manujose 0:e6964ff1bbcc 75 i=0;
manujose 0:e6964ff1bbcc 76 tt=0;
manujose 0:e6964ff1bbcc 77 // pc.printf("RECIVED DATA FROM DSEERIAL\n");
manujose 0:e6964ff1bbcc 78 while (pc.readable() && (c !='S'))
manujose 0:e6964ff1bbcc 79 c=pc.getc();
manujose 0:e6964ff1bbcc 80 c=pc.getc();
manujose 0:e6964ff1bbcc 81 while (pc.readable() &&(c !='E')) {
manujose 0:e6964ff1bbcc 82 if (c!=' ') {
manujose 0:e6964ff1bbcc 83 tt=tt*10+atoi(&c);
manujose 0:e6964ff1bbcc 84 }
manujose 0:e6964ff1bbcc 85 c = pc.getc();
manujose 0:e6964ff1bbcc 86 }
manujose 0:e6964ff1bbcc 87
manujose 0:e6964ff1bbcc 88 while (pc.readable())
manujose 0:e6964ff1bbcc 89 c = pc.getc();
manujose 0:e6964ff1bbcc 90
manujose 0:e6964ff1bbcc 91 if (tt>= NUM_MICRO_SEC) {
manujose 0:e6964ff1bbcc 92 ttt.t.tv_sec = tt/NUM_MICRO_SEC;
manujose 0:e6964ff1bbcc 93 ttt.t.tv_usec = tt - ttt.t.tv_sec*NUM_MICRO_SEC;
manujose 0:e6964ff1bbcc 94 } else {
manujose 0:e6964ff1bbcc 95 ttt.t.tv_sec =0; //less than a sec
manujose 0:e6964ff1bbcc 96 ttt.t.tv_usec = tt;
manujose 0:e6964ff1bbcc 97 }
manujose 0:e6964ff1bbcc 98 serial2.putc(ttt.BYTE[0]);
manujose 0:e6964ff1bbcc 99 serial2.putc(ttt.BYTE[1]);
manujose 0:e6964ff1bbcc 100 serial2.putc(ttt.BYTE[2]);
manujose 0:e6964ff1bbcc 101 serial2.putc(ttt.BYTE[3]);
manujose 0:e6964ff1bbcc 102 serial2.putc(ttt.BYTE[4]);
manujose 0:e6964ff1bbcc 103 serial2.putc(ttt.BYTE[5]);
manujose 0:e6964ff1bbcc 104 serial2.putc(ttt.BYTE[6]);
manujose 0:e6964ff1bbcc 105 serial2.putc(ttt.BYTE[7]);
manujose 0:e6964ff1bbcc 106 //runAtTime(&pinToggle, &ttt.t);
manujose 0:e6964ff1bbcc 107 //ideal_trg_time.tv_sec = ttt.t.tv_sec;
manujose 0:e6964ff1bbcc 108 //ideal_trg_time.tv_usec = ttt.t.tv_usec;
manujose 0:e6964ff1bbcc 109 pc.printf("DATA RECV :%d SEC %d AND MICRO %d \n",tt,ttt.t.tv_sec,ttt.t.tv_usec);
manujose 0:e6964ff1bbcc 110 /*trig.mode(PullDown);
manujose 0:e6964ff1bbcc 111 wait(2);
manujose 0:e6964ff1bbcc 112 trig.mode(PullUp);
manujose 0:e6964ff1bbcc 113 wait(2);
manujose 0:e6964ff1bbcc 114 trig.mode(PullDown);
manujose 0:e6964ff1bbcc 115 */
manujose 0:e6964ff1bbcc 116 }
manujose 0:e6964ff1bbcc 117
manujose 0:e6964ff1bbcc 118
manujose 0:e6964ff1bbcc 119
manujose 0:e6964ff1bbcc 120 }
manujose 0:e6964ff1bbcc 121
manujose 0:e6964ff1bbcc 122 }