syncMaster for problem 3

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "timesync.h"
00003 
00004 extern uint32_t sync_count[3];
00005 
00006 DigitalOut myled(LED2);
00007 DigitalOut mypin(p21);
00008 timeval_t tblink, tblink1, ttoggle;
00009 
00010 void pinToggle()
00011 {
00012     getTime(&tblink1);
00013     mypin = !mypin;
00014     myled = !myled;
00015 }
00016 
00017 void reportToggle(struct timeval * t)
00018 {
00019     int32_t diff;
00020     diff = (tblink1.tv_sec - t->tv_sec)*1000000+tblink1.tv_usec - t->tv_usec;
00021     //diff = t->tv_sec * 1000000 + t->tv_usec;
00022     //printf("triggered: %d.%06d ", t->tv_sec, t->tv_usec);
00023     //printf("expect: %d.%06d\r\n", texpect.tv_sec, texpect.tv_usec);
00024     printf("%d,%d,%d,%d\r\n", diff, sync_count[0],sync_count[1],sync_count[2]);
00025 }
00026 
00027 int main() {
00028     timesync_init();
00029     
00030     tblink.tv_sec = 5;
00031     tblink.tv_usec = 500000;
00032     runAtTrigger(&reportToggle);
00033     while(1)
00034     {
00035         if (runAtTime(&pinToggle, &tblink)==0) {
00036             tblink.tv_sec ++;
00037         }
00038         wait_ms(20);
00039     }    
00040 }