- UART takes baudrate on init

- UART calculate optimized baud prescaler

git-svn-id: http://moon:8086/svn/projects/HendiControl@47 fda53097-d464-4ada-af97-ba876c37ca34
This commit is contained in:
2019-03-03 08:39:07 +00:00
parent 62a224defa
commit b915c39801
4 changed files with 104 additions and 84 deletions
+4 -11
View File
@@ -13,6 +13,7 @@
#include <avr/wdt.h>
#include <avr/interrupt.h>
#include "machine.h"
#include "fifo.h"
#include "message.h"
#include "adc.h"
@@ -23,16 +24,8 @@
#include "mcp42x6.h"
#define PRINT(a,...) printf(a, ##__VA_ARGS__)
#define ARDUINO_NANO 1
#define PRINT_PROMPT putchar(0x0D);putchar(0x0A);putchar(':');
#if ARDUINO_NANO
#define F_CPU (16000000UL) // MHz
#else
#define F_CPU (18432000UL) // MHz
#endif
#define USART_BAUDRATE 9600UL
#define BAUD_PRESCALE (((F_CPU / (USART_BAUDRATE * 16UL))) - 1)
#define PRINT_PROMPT putchar(0x0D);putchar(0x0A);putchar(':');
#define USART_BAUDRATE 115200UL
#define TIMER_HW_CLOCK (F_CPU/8)
#define TIMER_IRQ_CLOCK 1000UL
#define TIMER_HW_RELOAD (0xFFFF-(TIMER_HW_CLOCK/TIMER_IRQ_CLOCK))
@@ -96,7 +89,7 @@ int main(void)
fifo_init(&messageFifo, 8, sizeof(Msg_t), "Fifo");
/* Replace with your application code */
uart_init(&messageFifo, BAUD_PRESCALE);
uart_init(&messageFifo, USART_BAUDRATE);
timer_init(&messageFifo, TIMER_HW_RELOAD, TimerClockSel_PS_8);
adc_init(&messageFifo);
i2c_init();