gps.c


1
#include <avr/io.h> 
2
#include <util/delay.h>
3
#include "lcd.h"
4
#include "gps.h"
5
6
7
int main(void)
8
9
{
10
unsigned char gps;
11
12
lcd_init();
13
USART_Init();
14
15
lcd_string("Hallo");
16
set_cursor(0,2);
17
lcd_string("Frederik");
18
_delay_ms(1000);  
19
20
lcd_clear();
21
  
22
 while(1)
23
    {
24
    
25
  gps = USART_Receive();
26
  
27
  lcd_data(gps);
28
  
29
  }
30
 
31
return 0;
32
33
}
34
35
36
void USART_Init(void)
37
38
{
39
//Set baud rate
40
UBRR0H = 0b00000001; 
41
UBRR0L = 0b00000011; 
42
//Enable receiver and disable transmitter
43
UCSR0B = 0b00010000;
44
//Set frame format: 8data, 1stop bit
45
UCSR0C = 0b00000110;
46
47
}
48
49
unsigned char USART_Receive( void )
50
{
51
/* Wait for data to be received */
52
while ( !(UCSR0A & 0b10000000) );
53
if (UCSR0A & 0b00010000) {
54
lcd_string("Frame Error");
55
}
56
if (UCSR0A & 0b00001000) {
57
lcd_string("Data OverRun");
58
}  
59
/* Get and return received data from buffer */
60
return UDR0;
61
}