ATmega8GPSLoggerBasismodul  20131018
gps.c
Go to the documentation of this file.
1 
36 #include "gps.h"
37 
41 void gps_init()
42 {
43  // USART Schnittstelle initalisieren
45 
46  // Interrupts global einschalten
47  sei();
48 }
49 
54 {
55  unsigned int in = 0;
56 
57  do
58  {
59  in = uart_getc();
60  }
61  while((in & UART_NO_DATA) || (in & UART_BUFFER_OVERFLOW));
62 
63  return((char) in);
64 }
65 
69 void gps_get_nmea(char *buf, uint8_t bufSize)
70 {
71  char inChar;
72  uint8_t curSize = 0;
73 
74  // warten bis das 1. zeichen ($) des nmea strings kommt
75  do
76  {
77  inChar = gps_get_char();
78  }
79  while(inChar != '$');
80 
81  // nachdem das 1.zeichen erkannt wurde den string einlesen
82  while (inChar != '\n' && curSize < bufSize - 2)
83  {
84  *buf++ = inChar;
85  curSize++;
86  inChar = gps_get_char();
87  }
88 
89  *buf++ = '\n';
90  *buf = '\0';
91 }
void gps_get_nmea(char *buf, uint8_t bufSize)
Empfängt einen vollständige NMEA-Befehl und gibt diesen dann zurück.
Definition: gps.c:69
#define UART_BAUD_SELECT(baudRate, xtalCpu)
UART Baudrate Expression.
Definition: uart.h:67
#define UART_NO_DATA
Definition: uart.h:96
#define GPS_BAUD
Definition: gps.h:18
void gps_init()
Routine zur Initialisierung des GPS Moduls.
Definition: gps.c:41
char gps_get_char()
Gibt sobald verfügbar ein Zeichen vom UART zurück.
Definition: gps.c:53
unsigned int uart_getc(void)
Get received byte from ringbuffer.
Definition: uart.c:390
Include File für gps.c.
#define UART_BUFFER_OVERFLOW
Definition: uart.h:95
void uart_init(unsigned int baudrate)
Initialize UART and set baudrate.
Definition: uart.c:313