Line 16... |
Line 16... |
16 |
#define BEEP_OFF() TCCR0B=0b000 |
16 |
#define BEEP_OFF() TCCR0B=0b000 |
17 |
#define GPS_ON() PORTB|=0x02 |
17 |
#define GPS_ON() PORTB|=0x02 |
18 |
#define GPS_OFF() PORTB&=0xFD |
18 |
#define GPS_OFF() PORTB&=0xFD |
19 |
#define DELAY(dly) for(Timer=dly;Timer;) |
19 |
#define DELAY(dly) for(Timer=dly;Timer;) |
20 |
|
20 |
|
- |
|
21 |
#define GPS_BAUDRATE 9600 // Enable USRAT0 in N81,9600bps |
- |
|
22 |
|
21 |
#define VTH_LOW (WORD)(8000UL*100/3838) |
23 |
#define VTH_LOW (WORD)(8000UL*100/3838) |
22 |
#define VTH_HIGH (WORD)(11500UL*100/3838) |
24 |
#define VTH_HIGH (WORD)(11500UL*100/3838) |
23 |
#define POWER_check 0b01000000 | 1 |
25 |
#define POWER_check 0b01000000 | 1 |
24 |
#define ANALOG_IN1 0b01000000 | 2 |
26 |
#define ANALOG_IN1 0b01000000 | 2 |
25 |
|
27 |
|
Line 148... |
Line 150... |
148 |
cli(); |
150 |
cli(); |
149 |
UCSR0B = 0; |
151 |
UCSR0B = 0; |
150 |
rxfifo.idx_r = 0; |
152 |
rxfifo.idx_r = 0; |
151 |
rxfifo.idx_w = 0; |
153 |
rxfifo.idx_w = 0; |
152 |
rxfifo.count = 0; |
154 |
rxfifo.count = 0; |
153 |
UBRR0L = SYSCLK/16/9600; // Enable USRAT0 in N81,4800bps |
155 |
UBRR0L = SYSCLK/16/GPS_BAUDRATE; |
154 |
UCSR0B = _BV(RXCIE0)|_BV(RXEN0)|_BV(TXEN0); |
156 |
UCSR0B = _BV(RXCIE0)|_BV(RXEN0)|_BV(TXEN0); |
155 |
Stat &= 0xFD; // Clear overflow flag |
157 |
Stat &= 0xFD; // Clear overflow flag |
156 |
sei(); |
158 |
sei(); |
157 |
} |
159 |
} |
158 |
|
160 |
|
Line 216... |
Line 218... |
216 |
|
218 |
|
217 |
|
219 |
|
218 |
for (;;) { |
220 |
for (;;) { |
219 |
if (Stat & 1) return 0; // When power fail is detected, return with zero. |
221 |
if (Stat & 1) return 0; // When power fail is detected, return with zero. |
220 |
c = uart_get(); |
222 |
c = uart_get(); |
221 |
if (Stat & 2) { // When buffer overflow has occured, restert to receive line. |
223 |
if (Stat & 2) { // When buffer overflow has occured, restart to receive line. |
222 |
uart_init(); |
224 |
uart_init(); |
223 |
i = 0; c = 0; |
225 |
i = 0; c = 0; |
224 |
} |
226 |
} |
225 |
if (!c || (i == 0 && c != '$')) continue; |
227 |
if (!c || (i == 0 && c != '$')) continue; |
226 |
Buff[i++] = c; |
228 |
Buff[i++] = c; |
Line 367... |
Line 369... |
367 |
// || !gp_comp(Buff, PSTR("$GPZDA")) |
369 |
// || !gp_comp(Buff, PSTR("$GPZDA")) |
368 |
// || !gp_comp(Buff, PSTR("$GPVTG")) |
370 |
// || !gp_comp(Buff, PSTR("$GPVTG")) |
369 |
) |
371 |
) |
370 |
{ |
372 |
{ |
371 |
if (f_write(&file1, Buff, b, &s) || b != s) { err = 5; break; }; |
373 |
if (f_write(&file1, Buff, b, &s) || b != s) { err = 5; break; }; |
372 |
/* itoa(battery,&Value1,10); // convert binary number to character |
374 |
itoa(battery,&Value1,10); // convert number to character |
373 |
itoa(intensity,&Value2,10); |
375 |
itoa(intensity,&Value2,10); |
374 |
strcpy(&Buff[0], Value1); |
- |
|
375 |
strcpy_P(&Buff[4], PSTR(",")); |
- |
|
376 |
strcpy(&Buff[5], Value2); |
376 |
sprintf(Buff,"%d,%d\n",Value1,Value2); |
377 |
strcpy_P(&Buff[9], PSTR("\r\n")); |
- |
|
378 |
if (f_write(&file1, Buff, 11, &s) || 11 != s) { err = 8; break; }; |
377 |
if (f_write(&file1, Buff,strlen(Buff), &s) || (strlen(Buff) != s)) { err = 8; break; }; |
379 |
*/ } |
378 |
} |
380 |
if ((Stat & 4) == 0) continue; |
379 |
if ((Stat & 4) == 0) continue; |
381 |
if (f_sync(&file1)) { err = 6; break; };// Synchronize the file in interval of 300 sec. |
380 |
if (f_sync(&file1)) { err = 6; break; };// Synchronize the file in interval of 300 sec. |
382 |
cli(); Stat &= 0xFB; sei(); // Clear sync request |
381 |
cli(); Stat &= 0xFB; sei(); // Clear sync request |
383 |
} |
382 |
} |
384 |
if (err) break; |
383 |
if (err) break; |