avr-libc icon indicating copy to clipboard operation
avr-libc copied to clipboard

[patch #6768] Addition to util/setbaud.h

Open avrs-admin opened this issue 3 years ago • 2 comments

Thu 05 Mar 2009 05:21:09 PM CET

I noticed that util/setbaud.h cannot calculate baudrate for sync mode.

I did the following modification to the file. I doubt it will it the next release, but I do beleive it is a good thing to have.

Basic explanation: if BAUD_SYNC is define and equal to 1, a modified macro is use to calculate baud rate. If BAUD_SYNC is define and equal to 0 or not define, macro works as before.

Modification should not break code that use the current version of setbaud.h.

Usage could be: #include <avr/io.h>

#define F_CPU 4000000

static void uart_9600(void) { #define BAUD_SYNC 1 #define BAUD 9600 Device specific declaration #define XCK_DDR DDRB//For ATmega16A #define XCK_DDx DDB0 #include <util/setbaud.h> UBRRH = UBRRH_VALUE; UBRRL = UBRRL_VALUE; UCSRC = _BV(1<<UMSEL); Configure as clock source XCK_DDR |= _BV(1<<XCK_DDx); }

file #17593: setBaud.diff

This issue was migrated from https://savannah.nongnu.org/patch/?6768

avrs-admin avatar Jan 31 '22 07:01 avrs-admin

Frédéric Nadeau Thu 05 Mar 2009 05:43:04 PM CET

After reread, it should be:

UCSRC |= _BV(1<<UMSEL);

But I guess that most of you already spotted that.

avrs-admin avatar Jan 31 '22 07:01 avrs-admin

Eric Weddington Fri 13 May 2011 12:28:38 AM CEST

Hi Frédéric,

On line 16 of this patch you are defining BAUD_SYNC to 0 in the header file. Then later on, you check to see if it is not defined, if so then define BAUD_SYNC to 0. Shouldn't that first definition on line 16 be removed?

avrs-admin avatar Jan 31 '22 07:01 avrs-admin