Open
Conversation
Contributor
Author
|
I just realized my attached patch is somewhat wrong. Since you are using the double speed operation in asynchronous mode (by setting the U2X0 bit UCSR0A). Setting that bit will reduce the divisor of the baud rate divider from 16 to 8, so the formula should multiply by 8 instead. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Since the serial.h code is only working with a 16MHz clock I've been using this hack since I run my clock system clock at different speeds. The following suggestion uses a small macro which takes the F_CPU value defined in Hz and calculates the baud rate based on that. It's not very nice, but it works as far as I know.
The formula is:
see http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=45341 for more info regarding this, but you probably know it already.
The "bad" with this commit is that you end up being dependent on having the F_CPU value set(either in Makefile or before importing the serial.h code).