00001 {
00002 printf("starting double trigger sequence\n");
00003
00004 const unsigned length=1000;
00005 const unsigned long ntrigs=10000;
00006
00007 int trigs[length];
00008 for (int i=0; i<length; ++i){
00009 trigs[i]=0;
00010 }
00011
00012
00013 trigs[0]=0x01;
00014 trigs[130]=0x01;
00015
00016
00017
00018
00019 tapi.timRegLoad(0x1a,0x0200);
00020 tapi.timRegLoad(0x1a,0x0);
00021
00022
00023 tapi.timRegLoad(0x1C,length-1);
00024 for (int i=0; i<length; ++i){
00025 tapi.timRegLoad(0x8000 + i*2, trigs[i]);
00026 int in = tapi.timReadRegister(0x8000 + i*2);
00027
00028 }
00029
00030
00031 tapi.timRegLoad(0x0,0xFDFD);
00032
00033
00034 tapi.timRegLoad(0x18,0xFFFD);
00035
00036
00037 tapi.timRegLoad(0x12,0x0);
00038 tapi.timRegLoad(0x10,0x0);
00039
00040
00041 tapi.timRegLoad(0x1a,0x0C01);
00042
00043 unsigned long l1id=0;
00044 do{
00045 l1id = tapi.timReadRegister(0x10) + (tapi.timReadRegister(0x12)<<16);
00046 } while (l1id<ntrigs);
00047
00048
00049 tapi.timRegLoad(0x1a,0x0);
00050
00051 l1id = tapi.timReadRegister(0x10) + (tapi.timReadRegister(0x12)<<16);
00052 printf("number of l1ids sent was %d \n\n",l1id);
00053
00054
00055 for (int i=0; i<length; ++i){
00056 int out = tapi.timReadRegister(0x8000 + i*2);
00057 if (out==0){
00058 printf(".");
00059 }else if (out==0xffff){
00060 printf("x");
00061 }else{
00062 printf("\nOutput[%d]=0x%x\n",i,out);
00063 }
00064 }
00065 printf("\n");
00066
00067 }