- fixed baudrate calculation

[Bootloader]
- set baudrate top 115200

[HendiCtrl]
- set baudrate top 115200
- revised and fixed command interpreter
- added new commands: SW_VERSION, SW_IDENTIFIER, DEBUG on/on, Remote enter, Remote exit
- oven is switched off on entering / exiting remote


git-svn-id: http://moon:8086/svn/projects/HendiControl@173 fda53097-d464-4ada-af97-ba876c37ca34
This commit is contained in:
2019-03-30 11:48:05 +00:00
parent e1be187d03
commit feaf3666be
8 changed files with 175 additions and 81 deletions
+9 -8
View File
@@ -41,14 +41,14 @@ void uart_init(Fifo *pFifo, uint32_t baudrate)
{
g_pFifo = pFifo;
uint16_t prescale8 = UART_PRESCALE(baudrate, 8UL);
uint16_t prescale16 = UART_PRESCALE(baudrate, 16UL);
uint32_t prescale8 = UART_PRESCALE(baudrate, 8UL);
uint32_t prescale16 = UART_PRESCALE(baudrate, 16UL);
uint32_t baud8 = ((prescale8+1) * 8);
uint32_t baud16 = ((prescale16+1) * 16);
uint32_t fcpu8 = (prescale8 * baudrate * 8);
uint32_t fcpu16 = (prescale16 * baudrate * 16);
uint32_t err8 = abs(baudrate - baud8);
uint32_t err16 = abs(baudrate - baud16);
uint32_t err8 = abs(fcpu8 - F_CPU);
uint32_t err16 = abs(fcpu16 - F_CPU);
uint16_t prescale = prescale16;
if (err8 < err16)
@@ -60,8 +60,9 @@ void uart_init(Fifo *pFifo, uint32_t baudrate)
}
// Set baud rate
UBRR0L = (uint8_t)prescale;
UBRR0H = (uint8_t)(prescale >> 8);
uint16_t reg = prescale - 1;
UBRR0L = (uint8_t)reg;
UBRR0H = (uint8_t)(reg >> 8);
// Enable receiver and transmitter
UCSR0B = (1<<TXEN0)|(1<<RXEN0);