更新の勘所は、シーケンサによるシャッターレリーズ後の遅延時間を最適化し、多段階露光が13セット撮像できるようになりました。使い方はIII-2の3.使い方と同じです。ただ第3接触の連続撮像が少しきついです。11秒前にシーケンス開始のレリーズを行うのが吉かもしれません。 |
E:\M_shi\MPLABXProjects\D7100_Ctrl.X\D7100_Ctrl.c |
1
2
3
4
5
6
7
8 #include <stdio.h>
9 #include <stdlib.h>
10 #include <xc.h>
11 #define _XTAL_FREQ 1000000;
12
13
14
15 #pragma config FOSC=INTOSCIO, WDTE=OFF, PWRTE=ON, BOREN=ON, MCLRE=OFF, CP=OFF, IESO=OFF
16
17 int i,j,k;
18
19
20
21 int main(void){
22
23
24
25
26
27
28 TRISIO0=0;
29 TRISIO1=0;
30 TRISIO2=0;
31 TRISIO3=1;
32 TRISIO4=0;
33 TRISIO5=0;
34
35 GP0 = 1;
36 GP1 = 1;
37 GP2 = 1;
38 GP4 = 1;
39 GP3 = 1;
40 while(1){
41 if(GP3 == 0){
42 goto Start1;
43 }
44 else
45 {
46 GP1 = 1;
47 }
48 }
49 Start1:
50 _delay(25000);
51 for (i=1; i<=26; i++){
52 GP4 = 0;
53 _delay(120000);
54 GP1 = 0;
55 _delay(25000);
56 GP1 = 1;
57 _delay(25000);
58 GP4 = 1;
59 _delay(320000);
60 }
61
62 GP2 = 0;
63 _delay(25000);
64 for(j=1;j<=7;j++){
65 GP0 = 0;
66 _delay(25000);
67 GP0 = 1;
68 _delay(25000);
69 }
70 GP2 = 1;
71 _delay(25000);
72
73 while(1){
74 for(i=1; i<=7; i++){
75 GP4 = 0;
76 _delay(25000);
77 GP1 = 0;
78 _delay(25000);
79 GP1 = 1;
80 _delay(25000);
81 GP4 = 1;
82 _delay(250000);
83 GP0 = 0;
84 _delay(25000);
85 for(j=1; j<=2; j++){
86 GP2 = 0;
87 _delay(25000);
88 GP2 = 1;
89 _delay(25000);
90 }
91 GP0 = 1;
92 _delay(250000);
93 }
94 for(i=1; i<=3; i++){
95 GP4 = 0;
96 _delay(25000);
97 GP1 = 0;
98 _delay(25000);
99 GP1 = 1;
100 _delay(25000);
101 GP4 = 1;
102 _delay(750000);
103 GP0 = 0;
104 _delay(25000);
105 for(j=1; j<=2; j++){
106 GP2 = 0;
107 _delay(25000);
108 GP2 = 1;
109 _delay(25000);
110 }
111 GP0 = 1;
112 _delay(125000);
113 }
114
115 _delay(25000);
116 GP4 = 0;
117 _delay(25000);
118 GP1 = 0;
119 _delay(25000);
120 GP1 = 1;
121 _delay(25000);
122 GP4 = 1;
123 _delay(750000);
124
125 k++ ;
126 if (k >= 8)
127 {
128 goto Multi ;
129 }
130
131 for(i=1; i<=3; i++){
132 GP4 = 0;
133 _delay(25000);
134 GP1 = 0;
135 _delay(25000);
136 GP1 = 1;
137 _delay(25000);
138 GP4 = 1;
139 _delay(750000);
140 GP2 = 0;
141 _delay(25000);
142 for(j=1; j<=2; j++){
143 GP0 = 0;
144 _delay(25000);
145 GP0 = 1;
146 _delay(25000);
147 }
148 GP2 = 1;
149 _delay(125000);
150 }
151
152 for(i=1; i<=7; i++){
153 GP2=1;
154 _delay(25000);
155 GP4 = 0;
156 _delay(25000);
157 GP1 = 0;
158 _delay(25000);
159 GP1 = 1;
160 _delay(25000);
161 GP4 = 1;
162 _delay(400000);
163 GP2 = 0;
164 _delay(25000);
165 for(j=1; j<=2; j++){
166 GP0 = 0;
167 _delay(25000);
168 GP0 = 1;
169 _delay(25000);
170 }
171 GP2 = 1;
172 _delay(125000);
173 }
174
175 _delay(25000);
176 GP4 = 0;
177 _delay(25000);
178 GP1 = 0;
179 _delay(25000);
180 GP1 = 1;
181 _delay(25000);
182 GP4 = 1;
183 _delay(25000);
184
185 for(i=1; i<=3; i++){
186 GP2 = 0;
187 _delay(25000);
188 for(j=1; j<=4; j++){
189 GP0 = 0;
190 _delay(25000);
191 GP0 = 1;
192 _delay(25000);
193 }
194 GP2 = 1;
195 _delay(25000);
196 }
197 }
198
199 Multi: //第3接触に備えてシャッター速度を1/2000に
200 GP2 = 0;
201 _delay(25000);
202 for(j=1; j<=16; j++){
203 GP0 = 0;
204 _delay(25000);
205 GP0 = 1;
206 _delay(25000);
207 }
208 GP2 = 1;
209 _delay(25000);
210
211 while(1){ //連続撮像
212 GP4 = 0;
213 _delay(125000);
214 GP1 = 0;
215 _delay(25000);
216 GP1 = 1;
217 _delay(25000);
218 GP4 = 1;
219 _delay(320000);
220 }
221 }
222
223
224