先に書いたD600のシーケンス制御のためのファームウェアでは、1)設定値が思ったように必ず1段ずつシャッター速度を遅くしたり早くしたりすることができなかった。また、2)12秒間の2コマ/秒の連写の後、バッファがない中で多段階撮像に突入するため、上手くシャッターが切れないことがありました。
1)の対策として、シャッターを切った後の待ち時間を少し短くし、シャッター速度を設定した後の待ち時間をその分少し長くする。トータルで1コマ撮像する時間を少し削りました。
2)の対策として、連写後、および多段階撮像後少し待ち時間をおいてバッファからメモリカードへの書き込み時間を取りました。
 またシャッターを切ってから次までの待ち時間を少し削れた分、8セットの撮像から9セットの13段階露光(1/4000~1sec)が可能になりました。また、第3接触の撮像のための連写の前にもバッファ書き込み時間を入れることができました。


D600用シーケンス制御プログラム改
  1 /*
  2 *File:CameraCtrl.c
  3 *Author:M氏
  4 *
  5 *Createdon2014/06/27,21:48
  6 */
  7 
  8 #include<stdio.h>
  9 #include<stdlib.h>
 10 #include<xc.h>
 11 #define _XTAL_FREQ 1000000;
 12 
 13 
 14 /*****Configuration********/
 15 #pragma config FOSC=INTOSCIO, WDTE=OFF, PWRTE=ON, BOREN=ON, MCLRE=OFF, CP=OFF, IESO=OFF//, FCMEN=OFF;
 16 
 17 int i,j,k;
 18 int Time = 147;
 19 
 20 
 21 
 22 int main(void){
 23 
 24     //OSCCON = 0x40;  //set1MHz
 25     ANSEL=0x00;     //alldigital
 26     CMCON0=0x07;    //Comperlator off
 27     WPU=0x14;       //set pull up bit on
 28     nGPPU=0;        //pull up activate
 29     TRISIO0=0;  //GP1 output
 30     TRISIO1=0;  //GP2 output
 31     TRISIO2=0;  //GP3 output
 32     TRISIO3=1;  //GP4 input
 33     TRISIO4=0;  //GP5 output
 34     TRISIO5=0;  //GP6 output
 35     while(1){       //All out off
 36         GP0 = 1;    //Speed down
 37         GP1 = 1;    //Shutter
 38         GP2 = 1;    //Speed up
 39         GP4 = 1;    //Focus
 40         GP3 = 1;
 41         while(1){
 42             if(GP3 == 0){
 43                 goto Start1;
 44             }
 45         }
 46         Start1:
 47         
 48                 _delay(250000);     //wait
 49             GP4 = 0;            //Focus on
 50                 _delay(250000);     //wait 
 51             GP1 = 0;            //Shutter release
 52                 _delay(12000000);     //wait 12sec
 53             GP1 = 1;            //Shutter off
 54                 _delay(25000);     //wait 
 55             GP4 = 1;            //Focus off
 56                 _delay(25000);     //wait 
 57             GP2 = 0;            //Preconfig.
 58                 _delay(25000);     //wait 
 59             for(j=1;j<=7;j++){  //Speed up from 1/500 to 1/4000+alpha
 60                 GP0 = 0;
 61                 _delay(25000);
 62                 GP0 = 1;
 63                 _delay(25000);
 64             }
 65             GP2=1;
 66  
 67         while(1){
 68             _delay(1700000);    //バッファ書き込み待ち
 69             GP2 = 1;
 70             for(i=1; i<=7; i++){    //1/4000-1/60sec
 71                 _delay(100000);
 72                 GP4 = 0;            //Focus on
 73                     _delay(25000);     //wait
 74                 GP1 = 0;            //Shutter release
 75                     _delay(25000);     //wait
 76                 GP1 = 1;            //Shutter off
 77                     _delay(25000);     //wait
 78                 GP4 = 1;            //Focus off
 79                     _delay(800000);     //wait 900ms
 80                 GP0 = 0;            //Preconfig.
 81                     _delay(25000);     //wait 
 82                 for(j=1; j<=2; j++){  //Speed Down
 83                     GP2 = 0;
 84                     _delay(25000);
 85                     GP2 = 1;
 86                     _delay(25000);
 87                 }
 88                 GP0 = 1;
 89                     _delay(50000);
 90             }
 91             for(i=1; i<=5; i++){    //1/30-1/2sec
 92                 _delay(200000);
 93                 GP4 = 0;            //Focus on
 94                     _delay(25000);     //wait
 95                 GP1 = 0;            //Shutter release
 96                     _delay(25000);     //wait
 97                 GP1 = 1;            //Shutter off
 98                     _delay(25000);     //wait
 99                 GP4 = 1;            //Focus off
100                     _delay(1000000);     //wait 1200ms
101                 GP0 = 0;            //Preconfig.
102                     _delay(25000);     //wait 
103                 for(j=1; j<=2; j++){  //Speed Down
104                     GP2 = 0;
105                     _delay(25000);
106                     GP2 = 1;
107                     _delay(25000);
108                 }
109                 GP0 = 1;            //Preconfig.
110                    _delay(200000);     //wait
111             }
112 
113             for(i=1; i<=2; i++){    //1sec x2 shot
114                 _delay(300000);
115                 GP4 = 0;            //Focus on
116                     _delay(20000);     //wait 
117                 GP1 = 0;            //Shutter release
118                     _delay(30000);     //wait 
119                 GP1 = 1;            //Shutter off
120                     _delay(20000);     //wait 
121                 GP4 = 1;            //Focus off
122                     _delay(1300000);     //wait 1500ms
123                 k++;
124                 if(k>=10){
125                     goto Multi;
126                 }
127             }
128 
129             for(i=1; i<=5; i++){    //1/2-1/30sec
130                 _delay(200000);
131                  GP2 = 0;
132                     _delay(25000);
133                  for(j=1; j<=2; j++){  //Speed Down
134                     GP0 = 0;
135                     _delay(25000);
136                     GP0 = 1;
137                     _delay(25000);
138                 }
139                 GP2 = 1;
140                     _delay(25000);
141                 GP4 = 0;            //Focus on
142                     _delay(25000);     //wait
143                 GP1 = 0;            //Shutter release
144                     _delay(25000);     //wait
145                 GP1 = 1;            //Shutter off
146                     _delay(25000);     //wait
147                 GP4 = 1;            //Focus off
148                     _delay(1000000);     //wait 1200ms
149             }
150             for(i=1; i<=7; i++){    //1/60-1/4000sec
151                 _delay(200000);
152                 GP2 = 0;
153                     _delay(25000);
154                  for(j=1; j<=2; j++){  //Speed Down
155                     GP0 = 0;
156                     _delay(25000);
157                     GP0 = 1;
158                     _delay(25000);
159                 }
160                 GP2=1;
161                     _delay(20000);
162                 GP4 = 0;            //Focus on
163                     _delay(20000);     //waits
164                 GP1 = 0;            //Shutter release
165                     _delay(30000);     //wait
166                 GP1 = 1;            //Shutter off
167                     _delay(20000);     //wait
168                 GP4 = 1;            //Focus off
169                     _delay(800000);     //wait 900ms
170             }
171             for(i=1; i<=2; i++){    //1/250-1/4000sec
172                 GP2 = 0;
173                     _delay(25000);
174                  for(j=1; j<=3; j++){  //Speed Down
175                     GP0 = 0;
176                     _delay(25000);
177                     GP0 = 1;
178                     _delay(25000);
179                 }
180                 GP2 = 1;
181                 _delay(50000);
182             }
183 
184             k++;
185             
186         }
187     }
188     Multi:
189     _delay(3000000);    //バッファ書き込み待ち
190     GP2 = 0;            //Preconfig.
191         _delay(25000);     //wait 250ms
192     for(j=1; j<=20; j++){  //Speed Down
193         GP0 = 0;
194         _delay(25000);
195         GP0 = 1;
196         _delay(25000);
197     }
198     GP2 = 1;
199         _delay(25000);
200     GP4 = 0;            //Focus on
201         _delay(25000);     //wait
202     GP1 = 0;            //Shutter release
203         _delay(20000000);     //wait 20sec
204     GP1 = 1;            //Shutter off
205         _delay(25000);     //wait
206     GP4 = 1;            //Focus off
207         _delay(25000);     //wait
208 }
209 //return();
210 
inserted by FC2 system