/Designs/GPSRL03A/main.c
17,6 → 17,8
#define GPS_ON() PORTB|=0x02
#define GPS_OFF() PORTB&=0xFD
#define DELAY(dly) for(Timer=dly;Timer;)
 
#define GPS_BAUDRATE 9600 // Enable USRAT0 in N81,9600bps
 
#define VTH_LOW (WORD)(8000UL*100/3838)
#define VTH_HIGH (WORD)(11500UL*100/3838)
150,7 → 152,7
rxfifo.idx_r = 0;
rxfifo.idx_w = 0;
rxfifo.count = 0;
UBRR0L = SYSCLK/16/9600; // Enable USRAT0 in N81,4800bps
UBRR0L = SYSCLK/16/GPS_BAUDRATE;
UCSR0B = _BV(RXCIE0)|_BV(RXEN0)|_BV(TXEN0);
Stat &= 0xFD; // Clear overflow flag
sei();
219,7 → 221,7
for (;;) {
if (Stat & 1) return 0; // When power fail is detected, return with zero.
c = uart_get();
if (Stat & 2) { // When buffer overflow has occured, restert to receive line.
if (Stat & 2) { // When buffer overflow has occured, restart to receive line.
uart_init();
i = 0; c = 0;
}
370,14 → 372,11
)
{
if (f_write(&file1, Buff, b, &s) || b != s) { err = 5; break; };
/* itoa(battery,&Value1,10); // convert binary number to character
itoa(battery,&Value1,10); // convert number to character
itoa(intensity,&Value2,10);
strcpy(&Buff[0], Value1);
strcpy_P(&Buff[4], PSTR(","));
strcpy(&Buff[5], Value2);
strcpy_P(&Buff[9], PSTR("\r\n"));
if (f_write(&file1, Buff, 11, &s) || 11 != s) { err = 8; break; };
*/ }
sprintf(Buff,"%d,%d\n",Value1,Value2);
if (f_write(&file1, Buff,strlen(Buff), &s) || (strlen(Buff) != s)) { err = 8; break; };
}
if ((Stat & 4) == 0) continue;
if (f_sync(&file1)) { err = 6; break; };// Synchronize the file in interval of 300 sec.
cli(); Stat &= 0xFB; sei(); // Clear sync request