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
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.