guten morgen
ich habe versucht du baud zu ändern und anders zu initialisieren. nur
ich komme auf keinen grünen zweig.
******************************************************************
void uart_init(void)
{
UCSRB = (1<<RXEN)|(1<<TXEN); // UART TX und RX einschalten
UCSRC |= ( 1 << URSEL )|( 3<<UCSZ0 ); // Asynchron 8N1
//nur für 57600 Baud bei 14.7456MHz für Mega128
UBRRH = 0; // Highbyte ist 0
UBRRL = 15; // Lowbyte ist 15
//falls anderer Mega bzw andere Frequenz
//UBRRH = (uint8_t) (UBRR_BAUD>>8);
//UBRRL = (uint8_t) (UBRR_BAUD & 0x0ff);
}
***********************************************************************
dies habe ich vor máin stehen und davor habe ich meine BAUD, UBRR und
Frequenz definieret
im main habe ich den aufruf der funktion uart_init();
nun beim compiliren mekert er mir da USCRB und so nicht deklariert sind.
wie kann ich dann ein register deklarieren?
oder manche ich da was falsch?
dbaur
Gast
#540192
Da geht sie hin, die Rechtschreibung... Welchen Compiler benutzt du? Die Register werden in Header- Dateien definiert. Beim GCC wäre das die Datei <avr/io.h>, beim CodevisionAVR nur <io.h>. Der CAVR kennt nur die Register, nicht aber die einzelnen Bits. Die mußt du dir dann aus dem Datenblatt des Controllers raussuchen. Oder du kopierst dir die entsprechenden Definitionen aus den WinAVR Dateien. - Michael