mirror of
https://github.com/halleysfifthinc/Toyota-AVC-LAN
synced 2025-06-07 16:06:12 +00:00
Change serial baud to 500k at double-speed; but add cmake option for serial rxmode
This commit is contained in:
parent
9fcca0a6fb
commit
1cafed82d0
@ -49,6 +49,12 @@ set_property(CACHE TCB_CLKSEL PROPERTY STRINGS
|
|||||||
TCB_CLKSEL_CLKTCA_gc
|
TCB_CLKSEL_CLKTCA_gc
|
||||||
)
|
)
|
||||||
|
|
||||||
|
set(USART_RXMODE "USART_RXMODE_CLK2X_gc" CACHE STRING "USART at normal or double speed operation")
|
||||||
|
set_property(CACHE USART_RXMODE PROPERTY STRINGS
|
||||||
|
USART_RXMODE_CLK2X_gc
|
||||||
|
USART_RXMODE_NORMAL_gc
|
||||||
|
)
|
||||||
|
|
||||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||||
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "8.3")
|
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "8.3")
|
||||||
message(FATAL_ERROR "Insufficient AVR-GCC version; Support for ATtiny3216 was added in GCC v8")
|
message(FATAL_ERROR "Insufficient AVR-GCC version; Support for ATtiny3216 was added in GCC v8")
|
||||||
@ -120,6 +126,7 @@ target_compile_definitions(mockingboard PRIVATE
|
|||||||
CLK_PRESCALE_DIV=${CLK_PRESCALE_DIV}
|
CLK_PRESCALE_DIV=${CLK_PRESCALE_DIV}
|
||||||
__CLK_PRESCALE_DIV=__${CLK_PRESCALE_DIV}
|
__CLK_PRESCALE_DIV=__${CLK_PRESCALE_DIV}
|
||||||
TCB_CLKSEL=${TCB_CLKSEL}
|
TCB_CLKSEL=${TCB_CLKSEL}
|
||||||
|
USART_RXMODE=${USART_RXMODE}
|
||||||
)
|
)
|
||||||
target_compile_options(mockingboard PRIVATE
|
target_compile_options(mockingboard PRIVATE
|
||||||
--param=min-pagesize=0
|
--param=min-pagesize=0
|
||||||
|
@ -23,7 +23,8 @@
|
|||||||
"cacheVariables": {
|
"cacheVariables": {
|
||||||
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
|
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
|
||||||
"FREQSEL": "20MHz",
|
"FREQSEL": "20MHz",
|
||||||
"TCB_CLKSEL": "TCB_CLKSEL_CLKDIV1_gc"
|
"TCB_CLKSEL": "TCB_CLKSEL_CLKDIV1_gc",
|
||||||
|
"USART_RXMODE": "USART_RXMODE_CLK2X_gc"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
16
src/com232.c
16
src/com232.c
@ -20,9 +20,6 @@
|
|||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define USART_BAUD_RATE(BAUD_RATE) \
|
|
||||||
(uint16_t)((float)(F_CPU * 64 / (16 * (float)BAUD_RATE)) + 0.5)
|
|
||||||
|
|
||||||
#include <avr/interrupt.h>
|
#include <avr/interrupt.h>
|
||||||
#include <avr/io.h>
|
#include <avr/io.h>
|
||||||
#include <avr/sfr_defs.h>
|
#include <avr/sfr_defs.h>
|
||||||
@ -31,6 +28,15 @@
|
|||||||
#include "com232.h"
|
#include "com232.h"
|
||||||
#include "timing.h"
|
#include "timing.h"
|
||||||
|
|
||||||
|
#if USART_RXMODE == USART_RXMODE_CLK2X_gc
|
||||||
|
#define RXMODE_S 9
|
||||||
|
#elif USART_RXMODE == USART_RXMODE_NORMAL_gc
|
||||||
|
#define RXMODE_S 16
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define USART_BAUD_RATE(BAUD_RATE) \
|
||||||
|
(uint16_t)((float)(F_CPU * 64 / (USART_RXMODE * (float)BAUD_RATE)) + 0.5)
|
||||||
|
|
||||||
uint8_t RS232_RxCharBuffer[25], RS232_RxCharBegin, RS232_RxCharEnd;
|
uint8_t RS232_RxCharBuffer[25], RS232_RxCharBegin, RS232_RxCharEnd;
|
||||||
uint8_t readkey;
|
uint8_t readkey;
|
||||||
|
|
||||||
@ -44,11 +50,11 @@ void RS232_Init(void) {
|
|||||||
|
|
||||||
USART0.CTRLA = USART_RXCIE_bm; // Enable receive interrupts
|
USART0.CTRLA = USART_RXCIE_bm; // Enable receive interrupts
|
||||||
USART0.CTRLB = USART_RXEN_bm | USART_TXEN_bm | // Enable Rx/Tx and set receive
|
USART0.CTRLB = USART_RXEN_bm | USART_TXEN_bm | // Enable Rx/Tx and set receive
|
||||||
USART_RXMODE_NORMAL_gc; // mode normal
|
USART_RXMODE; // mode
|
||||||
USART0.CTRLC = USART_CMODE_ASYNCHRONOUS_gc | USART_PMODE_DISABLED_gc |
|
USART0.CTRLC = USART_CMODE_ASYNCHRONOUS_gc | USART_PMODE_DISABLED_gc |
|
||||||
USART_CHSIZE_8BIT_gc |
|
USART_CHSIZE_8BIT_gc |
|
||||||
USART_SBMODE_1BIT_gc; // Async UART with 8N1 config
|
USART_SBMODE_1BIT_gc; // Async UART with 8N1 config
|
||||||
USART0.BAUD = USART_BAUD_RATE(250000);
|
USART0.BAUD = USART_BAUD_RATE(500000);
|
||||||
}
|
}
|
||||||
|
|
||||||
ISR(USART0_RXC_vect) {
|
ISR(USART0_RXC_vect) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user