Subversion Repositories FlightCtrl

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
681 walter 1
********************************************************************************
2
in "makefile":
3
MCU = atmega644
4
ändern in:
5
MCU = atmega644p
6
 
7
in "makefile" an entsprechender Stelle hinzufügen:
8
ifeq ($(MCU), atmega644p)
9
FUSE_SETTINGS = -u -U lfuse:w:0xff:m -U hfuse:w:0xdf:m
10
#FUSE_SETTINGS = -U lfuse:w:0xff:m -U hfuse:w:0xdf:m
11
 
12
# -u  bei neuen Controllern wieder einspielen
13
 
14
 HEX_NAME = MEGA644P
15
endif
16
 
17
 
18
********************************************************************************
19
in "main.h" hinzufügen: (bei den anderen #defines)
20
 
21
#if defined (__AVR_ATmega644P__)
22
#define SYSCLK	20000000L	//Quarz Frequenz in Hz
23
//#define SYSCLK	16000000L	//Quarz Frequenz in Hz
24
#endif
25
 
26
********************************************************************************
27
in "rc.h" hinzufügen:  (bei den anderen #defines)
28
#if defined (__AVR_ATmega644P__)
29
//#define TIMER_TEILER        CK64
30
#define TIMER_RELOAD_VALUE  250
31
//#define TIMER_TEILER        CK256                 // bei 20MHz
32
//#define TIMER_RELOAD_VALUE  -78 					// bei 20MHz
33
#endif
34
 
35
********************************************************************************
36
in "uart.h" hinzufügen: (bei den anderen #defines)
37
#if defined (__AVR_ATmega644P__)
38
#	define USR  UCSR0A
39
#	define UCR  UCSR0B
40
#	define UDR  UDR0
41
#	define UBRR UBRR0L
42
#	define EICR EICR0B
43
#   define TXEN TXEN0
44
#   define RXEN RXEN0
45
#   define RXCIE RXCIE0
46
#   define TXCIE TXCIE0
47
#   define U2X  U2X0
48
#   define UCSRB UCSR0B
49
#   define UDRE UDRE0
50
#   define INT_VEC_RX  SIG_USART_RECV
51
#   define INT_VEC_TX  SIG_USART_TRANS
52
#endif
53
 
54
#define BAUD_RATE1 57600		//Baud Rate für UART2
55
 
56
********************************************************************************
57
in "uart.c" hinzufügen:  und die entsprechenden interrupt routinen mit code füllen
58
 
59
 
60
//############################################################################
61
//INstallation der 2ten Seriellen Schnittstelle
62
void UART1_Init (void)
63
//############################################################################
64
{
65
	//Enable TXEN im Register UCR TX-Data Enable & RX Enable
66
 
67
	UCSR1B=(1 << TXEN) | (1 << RXEN);
68
    // UART Double Speed (U2X)
69
	UCSR1A   |= (1<<U2X);
70
	// RX-Interrupt Freigabe
71
	UCSR1B |= (1<<RXCIE);
72
	// TX-Interrupt Freigabe
73
	UCSR1B |= (1<<TXCIE);
74
 
75
	//Teiler wird gesetzt
76
	UBRR1L=(SYSCLK / (BAUD_RATE1 * 8L) - 1);
77
	//UBRR1L = 33;
78
	//öffnet einen Kanal für printf (STDOUT)
79
	//fdevopen (uart_putchar, 0);
80
	//sbi(PORTD,4);
81
  Debug_Timer = SetDelay(200);
82
}
83
 
84
 
85
 
86
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
87
//++ Sende-Part der Datenübertragung an zweiten UART
88
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
89
SIGNAL(SIG_USART1_RECV)
90
{
91
 
92
 
93
 
94
}
95
 
96
 
97
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
98
//++ Empfangs-Part der Datenübertragung von zweitem UART
99
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
100
SIGNAL(SIG_USART1_TRANS)
101
{
102
 
103
 
104
 
105
}
106
 
107
 
108
 
109
********************************************************************************
110
 
111
Was sonst noch zu beachten ist:
112
 
113
in "main.c" an geeigneter Stelle (z.B. dort wo bereits "UART_Init" aufgerufen wird nun auch "UART1_Init" aufrufen
114
 
115
 
116
Wenn in einer Routine der Zugriff auf ein alter UART Register vorkommt, welches nun auf UART1 (2ter Uart) gehen soll, dann muß der Zugriff natülich auch umgestellt werden:
117
 
118
hierbei gilt:
119
 
120
alt (Zugriff auf Uart0) > neu (Zugriff auf Uart1)
121
 
122
USR		>	UCSR1A
123
UCR 		>	UCSR1B
124
UDR		>	UDR1
125
UBRR 		>	UBRR1L
126
EICR		>	EICR1B
127
TXEN		>	TXEN1
128
RXEN		>	RXEN1
129
RXCIE		>	RXCIE1
130
TXCIE		>	TXCIE1
131
U2X		>	U2X1
132
UCSRB		>	UCSR1B
133
UDRE 		>	UDRE1
134
 
135
UCSR0A	>	UCSR0A
136
UCSR0B	>	UCSR0B
137
UDR0  	>	UDR0
138
UBRR0L	>	UBRR0L
139
EICR0B	>	EICR0B
140
TXEN0 	>	TXEN0
141
RXEN0 	>	RXEN0
142
RXCIE0	>	RXCIE0
143
TXCIE0	>	TXCIE0
144
U2X0  	>	U2X0
145
UCSR0B	>	UCSR0B
146
UDRE0 	>	UDRE0
147
 
148