カメラ本体側の設定により、バッファに貯めることなく14bit Raw画像を2コマ/秒で13秒間撮像し、書き込み時間を置かずに13段階のブラケティング撮像が可能になりました。また、シャッターを切ってからの遅延時間を少し減らして、10セットの撮像が可能になりました。そのファームウェアのソースリストを下に載せました。
カメラの設定はこちらに出しました。 |
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 int Time = 147;
19
20
21
22 int main(void){
23
24
25 ANSEL=0x00;
26 CMCON0=0x07;
27 WPU=0x14;
28 nGPPU=0;
29 TRISIO0=0;
30 TRISIO1=0;
31 TRISIO2=0;
32 TRISIO3=1;
33 TRISIO4=0;
34 TRISIO5=0;
35 while(1){
36 GP0 = 1;
37 GP1 = 1;
38 GP2 = 1;
39 GP4 = 1;
40 GP3 = 1;
41
42 while(1){
43 if(GP3 == 0){
44 goto Start1;
45 }
46 else{
47 GP0 = 1;
48 GP1 = 1;
49 GP2 = 1;
50 GP4 = 0;
51 }
52 }
53
54 Start1:
55 _delay(250000);
56 GP4 = 0;
57 _delay(250000);
58 GP1 = 0;
59 _delay(13000000);
60 GP1 = 1;
61 _delay(25000);
62 GP4 = 1;
63 _delay(25000);
64 GP2 = 0;
65 _delay(25000);
66 for(j=1;j<=7;j++){
67 GP0 = 0;
68 _delay(25000);
69 GP0 = 1;
70 _delay(25000);
71 }
72 GP2=1;
73
74 while(1){
75
76
77 for(i=1; i<=7; i++){
78 _delay(100000);
79 GP4 = 0;
80 _delay(25000);
81 GP1 = 0;
82 _delay(25000);
83 GP1 = 1;
84 _delay(25000);
85 GP4 = 1;
86 _delay(600000);
87 GP0 = 0;
88 _delay(25000);
89 for(j=1; j<=2; j++){
90 GP2 = 0;
91 _delay(25000);
92 GP2 = 1;
93 _delay(25000);
94 }
95 GP0 = 1;
96 _delay(25000);
97 }
98 for(i=1; i<=5; i++){
99 _delay(200000);
100 GP4 = 0;
101 _delay(25000);
102 GP1 = 0;
103 _delay(25000);
104 GP1 = 1;
105 _delay(25000);
106 GP4 = 1;
107 _delay(750000);
108 GP0 = 0;
109 _delay(25000);
110 for(j=1; j<=2; j++){
111 GP2 = 0;
112 _delay(25000);
113 GP2 = 1;
114 _delay(25000);
115 }
116 GP0 = 1;
117 _delay(25000);
118 }
119
120 for(i=1; i<=2; i++){
121 _delay(300000);
122 GP4 = 0;
123 _delay(25000);
124 GP1 = 0;
125 _delay(25000);
126 GP1 = 1;
127 _delay(25000);
128 GP4 = 1;
129 _delay(1200000);
130
131
132
133
134 }
135
136 for(i=1; i<=5; i++){
137 _delay(25000);
138 GP2 = 0;
139 _delay(25000);
140 for(j=1; j<=2; j++){
141 GP0 = 0;
142 _delay(25000);
143 GP0 = 1;
144 _delay(25000);
145 }
146 GP2 = 1;
147 _delay(25000);
148 GP4 = 0;
149 _delay(25000);
150 GP1 = 0;
151 _delay(25000);
152 GP1 = 1;
153 _delay(25000);
154 GP4 = 1;
155 _delay(750000);
156 }
157 for(i=1; i<=7; i++){
158 _delay(200000);
159 GP2 = 0;
160 _delay(25000);
161 for(j=1; j<=2; j++){
162 GP0 = 0;
163 _delay(25000);
164 GP0 = 1;
165 _delay(25000);
166 }
167 GP2=1;
168 _delay(25000);
169 GP4 = 0;
170 _delay(25000);
171 GP1 = 0;
172 _delay(25000);
173 GP1 = 1;
174 _delay(25000);
175 GP4 = 1;
176 _delay(600000);
177 }
178
179 GP2 = 0;
180 _delay(25000);
181 for(j=1; j<=3; j++){
182 GP0 = 0;
183 _delay(25000);
184 GP0 = 1;
185 _delay(25000);
186 }
187 GP2 = 1;
188 _delay(25000);
189 k++;
190 if(k>=5){
191 goto Multi;
192 }
193 }
194 }
195 Multi:
196
197 GP0 = 0;
198 _delay(25000);
199 for(j=1; j<=4; j++){
200 GP2 = 0;
201 _delay(25000);
202 GP2 = 1;
203 _delay(25000);
204 }
205 GP0 = 1;
206 _delay(25000);
207 GP4 = 0;
208 _delay(25000);
209 GP1 = 0;
210 _delay(15000000);
211 GP1 = 1;
212 _delay(25000);
213 GP4 = 1;
214 _delay(25000);
215 }
216
217