Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 577 → Rev 576

/branches/Flight-Ctrl_V0_64_3_GPS_work_Jochen/2_serial.txt
0,0 → 1,155
********************************************************************************
in "makefile":
MCU = atmega644
ändern in:
MCU = atmega644p
 
in "makefile" an entsprechender Stelle hinzufügen:
ifeq ($(MCU), atmega644p)
FUSE_SETTINGS = -u -U lfuse:w:0xff:m -U hfuse:w:0xdf:m
#FUSE_SETTINGS = -U lfuse:w:0xff:m -U hfuse:w:0xdf:m
 
# -u bei neuen Controllern wieder einspielen
 
HEX_NAME = MEGA644P
endif
 
 
********************************************************************************
in "main.h" hinzufügen: (bei den anderen #defines)
 
#if defined (__AVR_ATmega644P__)
#define SYSCLK 20000000L //Quarz Frequenz in Hz
//#define SYSCLK 16000000L //Quarz Frequenz in Hz
#endif
 
********************************************************************************
in "rc.h" hinzufügen: (bei den anderen #defines)
#if defined (__AVR_ATmega644P__)
//#define TIMER_TEILER CK64
#define TIMER_RELOAD_VALUE 250
//#define TIMER_TEILER CK256 // bei 20MHz
//#define TIMER_RELOAD_VALUE -78 // bei 20MHz
#endif
 
********************************************************************************
in "uart.h" hinzufügen: (bei den anderen #defines)
 
#define BAUD_RATE1 57600 //Baud Rate für UART2
 
#if defined (__AVR_ATmega644P__)
# define USR UCSR0A
# define UCR UCSR0B
# define UDR UDR0
# define UBRR UBRR0L
# define EICR EICR0B
# define TXEN TXEN0
# define RXEN RXEN0
# define RXCIE RXCIE0
# define TXCIE TXCIE0
# define U2X U2X0
# define UCSRB UCSR0B
# define UDRE UDRE0
# define INT_VEC_RX SIG_USART_RECV
# define INT_VEC_TX SIG_USART_TRANS
#endif
 
extern void UART1_Init (void);
 
 
********************************************************************************
in "uart.c" hinzufügen: und die entsprechenden interrupt routinen mit code füllen
 
 
//############################################################################
//INstallation der 2ten Seriellen Schnittstelle
void UART1_Init (void)
//############################################################################
{
//Enable TXEN im Register UCR TX-Data Enable & RX Enable
 
UCSR1B=(1 << TXEN) | (1 << RXEN);
// UART Double Speed (U2X)
UCSR1A |= (1<<U2X);
// RX-Interrupt Freigabe
UCSR1B |= (1<<RXCIE);
// TX-Interrupt Freigabe
UCSR1B |= (1<<TXCIE);
 
//Teiler wird gesetzt
UBRR1L=(SYSCLK / (BAUD_RATE1 * 8L) - 1);
//UBRR1L = 33;
//öffnet einen Kanal für printf (STDOUT)
//fdevopen (uart_putchar, 0);
//sbi(PORTD,4);
Debug_Timer = SetDelay(200);
}
 
 
 
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++ Sende-Part der Datenübertragung an zweiten UART
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SIGNAL(SIG_USART1_TRANS)
{
 
 
 
}
 
 
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++ Empfangs-Part der Datenübertragung von zweitem UART
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SIGNAL(SIG_USART1_RECV)
{
 
 
 
}
 
 
 
********************************************************************************
 
Was sonst noch zu beachten ist:
 
in "main.c" an geeigneter Stelle (z.B. dort wo bereits "UART_Init" aufgerufen wird nun auch "UART1_Init" aufrufen
 
 
Wenn in einer Routine der Zugriff auf ein altes UART Register vorkommt, welches nun auf UART1 (2ter Uart) gehen soll,
dann muß der Zugriff natülich auch umgestellt werden. Bei den zugehörigen register Bit Definitionen gilt zwar das gleich, da
die Bits bei UART0 und UART1 jedoch an selber Stelle im register ist es hier nur Kosmetisch nötig.
 
hierbei gilt:
 
alt (Zugriff auf Uart0) > neu (Zugriff auf Uart1)
 
USR > UCSR1A
UCR > UCSR1B
UDR > UDR1
UBRR > UBRR1L
EICR > EICR1B
TXEN > TXEN1
RXEN > RXEN1
RXCIE > RXCIE1
TXCIE > TXCIE1
U2X > U2X1
UCSRB > UCSR1B
UDRE > UDRE1
 
UCSR0A > UCSR1A
UCSR0B > UCSR1B
UDR0 > UDR1
UBRR0L > UBRR1L
EICR0B > EICR1B
TXEN0 > TXEN1
RXEN0 > RXEN1
RXCIE0 > RXCIE1
TXCIE0 > TXCIE1
U2X0 > U2X1
UCSR0B > UCSR1B
UDRE0 > UDRE1
 
 
 
/branches/Flight-Ctrl_V0_64_3_GPS_work_Jochen/generate_Sin_Cos.exe
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property