Forum: Compiler & IDEs UART BAUD RATE online per Taster von 4800 auf 19200 ste


von Herrmann (Gast)


Lesenswert?

Hallo

ich habe eine Frage zur umschaltung wärend des Betrieben per Taster von 
4800 auf 19200 Baud.

Initialisieren ´tu ich den UART1 so (habe einene Mega 128)


void init_rs232(void)
{
int baud;
baud=cpuclock/((4800*16L)-1);
UBRR1H= (unsigned char)(baud>>8);
UBRR1L = (unsigned char) baud;
UCSR1B= ((1<<RXCIE)|(1<<RXEN) | (1<<TXEN));
UCSR0C = (  (0<<UMSEL) |/* Configure for asynchronous operation */
        (0<<UPM1)  |  /* No parity */
        (0<<UPM0)  |
        (0<<USBS)  |  /* 1 stopbit */
        (1<<UCSZ1) |  /* 8 data bits */
        (1<<UCSZ0));
}


void main(void)
{
cli();
init_rs232();
sei();

}



wie kann ich die baudrate jetzt auf 19200 umstellen ???


rufe ich eine 2. funktion auf init_rs23219200();

cli();
init_rs23219200();
die als baudradte baud=cpuclock/((19200*16L)-1);
sei();



von johnny.m (Gast)


Lesenswert?

> wie kann ich die baudrate jetzt auf 19200 umstellen ???
Indem Du ins UBRR1 einen neuen Wert schreibst, der einer Baudrate von 
19200 Baud entspricht. Was ist daran so schwer?

von Herrmann (Gast)


Lesenswert?

Ach ja das ist ja einfach Du hast recht warum schwer wenns leicht geht.

Danke

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
Noch kein Account? Hier anmelden.