Rev 4137 Rev 4149
Line 36... Line 36...
36 char inChar; // input character from GPS 36 char inChar; // input character from GPS
37 String dataString = ""; // concantenated string with NMEA messages and measured values 37 String dataString = ""; // concantenated string with NMEA messages and measured values
38 int coll = 0; // collons counter in NMEA messages 38 int coll = 0; // collons counter in NMEA messages
39 unsigned int i = 0; // measurements counter 39 unsigned int i = 0; // measurements counter
40   40  
-   41 // 1x 100 us per 10 s UTC synchronised; 40 configuration bytes
-   42 const char cmd[40]={0xB5, 0x62, 0x06, 0x31, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, 0x00, 0xE0, 0xC8, 0x10, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0xC6, 0x51};
-   43  
-   44 // GPS setup for frequency measurement (acounter)
-   45 //const char cmd[40]={0xB5, 0x62, 0x06, 0x31, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x80, 0x84, 0x1E, 0x00, 0xE0, 0xC8, 0x10, 0x00, 0x40, 0x42, 0x0F, 0x00, 0xA0, 0x86, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0x00, 0x00, 0x00, 0x12, 0x03};
-   46  
-   47 // configure GPS
-   48 void setupGPS()
-   49 {
-   50 for (int n=0;n<40;n++) Serial.write(cmd[n]);
-   51 }
-   52  
-   53 void errorLED()
-   54 {
-   55 while(true)
-   56 {
-   57 digitalWrite(LED4, HIGH); // turn the LED on (HIGH is the voltage level)
-   58 delay(100); // wait for a second
-   59 digitalWrite(LED4, LOW); // turn the LED off by making the voltage LOW
-   60 delay(100); // wait for a second
-   61 }
-   62 }
41   63  
42 // function for reading $GPRMC NMEA message 64 // function for reading $GPRMC NMEA message
43 void ReadGPRMC() 65 void ReadGPRMC()
44 { 66 {
45 // $GPRMC,091451.00,A,4915.64143,N,01441.50397,E,0.053,,090215,,,A*74 67 // $GPRMC,091451.00,A,4915.64143,N,01441.50397,E,0.053,,090215,,,A*74
Line 106... Line 128...
106 while (coll < 12); // read only 7 coma separated values 128 while (coll < 12); // read only 7 coma separated values
107 } 129 }
108   130  
109 void isr() // interrupt service routine driven from 1PPS from GPS 131 void isr() // interrupt service routine driven from 1PPS from GPS
110 { 132 {
111 if (++interval == 10) // 10 seconds 133 //if (++interval == 10) // 10 seconds
112 { 134 {
113 rise=true; 135 rise=true;
114 interval = 0; 136 //interval = 0;
115 } 137 }
116   138  
117 } 139 }
118   140  
119 void record() 141 void record()
Line 184... Line 206...
184 if (dataFile) 206 if (dataFile)
185 { 207 {
186 dataFile.println(dataString); 208 dataFile.println(dataString);
187 dataFile.close(); 209 dataFile.close();
188 // print to the serial port too: 210 // print to the serial port too:
189 Serial.println(dataString); 211 //!!!Serial.println(dataString);
190 } 212 }
191 // if the file isn't open, pop up an error: 213 // if the file isn't open, pop up an error:
192 else { 214 else {
193 Serial.println("error opening datalog.CSV"); 215 //Serial.println("error opening datalog.CSV");
-   216 errorLED();
194 } 217 }
195 digitalWrite(chipSelect, LOW); 218 digitalWrite(chipSelect, LOW);
196   219  
197   220  
198 for (int n=0; n<CHANNELS; n++) // clear recording buffer 221 for (int n=0; n<CHANNELS; n++) // clear recording buffer
Line 211... Line 234...
211 void setup() 234 void setup()
212 { 235 {
213 // Open serial communications and wait for port to open: 236 // Open serial communications and wait for port to open:
214 Serial.begin(9600); 237 Serial.begin(9600);
215 while (!Serial) {;} 238 while (!Serial) {;}
216 Serial.println("#cvak"); 239 //Serial.println("#cvak");
217   240  
218 pinMode(detector, INPUT); 241 pinMode(detector, INPUT);
219 pinMode(eint, INPUT); 242 pinMode(eint, INPUT);
220 pinMode(SDO, INPUT); 243 pinMode(SDO, INPUT);
221 pinMode(LED1, OUTPUT); 244 pinMode(LED1, OUTPUT);
Line 223... Line 246...
223 pinMode(LED3, OUTPUT); 246 pinMode(LED3, OUTPUT);
224 pinMode(LED4, OUTPUT); 247 pinMode(LED4, OUTPUT);
225 pinMode(CONV, OUTPUT); 248 pinMode(CONV, OUTPUT);
226 //pinMode(SCK, OUTPUT); 249 //pinMode(SCK, OUTPUT);
227   250  
-   251 setupGPS();
-   252  
228 Serial.print("#Initializing SD card..."); // inserting a SD Card always reset the processor and call setup 253 //Serial.print("#Initializing SD card..."); // inserting a SD Card always reset the processor and call setup
229 // make sure that the default chip select pin is set to 254 // make sure that the default chip select pin is set to
230 // output, even if you don't use it: 255 // output, even if you don't use it:
231   256  
232 // see if the card is present and can be initialized: 257 // see if the card is present and can be initialized:
233 if (!SD.begin(chipSelect)) 258 if (!SD.begin(chipSelect))
234 { 259 {
235 Serial.println("Card failed, or not present"); 260 //Serial.println("Card failed, or not present");
236 // don't do anything more: 261 // don't do anything more:
-   262 errorLED();
237 return; 263 return;
238 } 264 }
239 Serial.println("card initialized."); 265 //Serial.println("card initialized.");
240   266  
241 noInterrupts(); // disable all interrupts 267 noInterrupts(); // disable all interrupts
242 attachInterrupt(0, isr, RISING); // initialise interrupt from rising edge of 1PPS 268 attachInterrupt(0, isr, RISING); // initialise interrupt from rising edge of 1PPS
243   269  
244 for (int n=0; n<CHANNELS; n++) // clear recoding buffer 270 for (int n=0; n<CHANNELS; n++) // clear recoding buffer
Line 247... Line 273...
247 channelA[n]=0; 273 channelA[n]=0;
248 } 274 }
249   275  
250 interrupts(); // enable all interrupts 276 interrupts(); // enable all interrupts
251 277
252 Serial.println("#Hmmm"); 278 //Serial.println("#Hmmm");
253 } 279 }
254   280  
255 void loop() 281 void loop()
256 { 282 {
257 //byte msb=0,lsb=0; 283 //byte msb=0,lsb=0;