From d89ecc7062892649f27717aaf65f79caa2858ee8 Mon Sep 17 00:00:00 2001 From: PlexSheep Date: Sat, 9 Dec 2023 11:27:55 +0100 Subject: [PATCH] printer --- .clangd | 2 +- btn-pwm/main.c | 2 +- build.sh | 6 ++++-- include/uart.c | 35 +++++++++++++++++++++++++++++++++++ include/uart.h | 12 ++++++++++++ print/main.c | 27 +++++++++++++++++++++++++++ 6 files changed, 80 insertions(+), 4 deletions(-) create mode 100644 include/uart.c create mode 100644 include/uart.h create mode 100644 print/main.c diff --git a/.clangd b/.clangd index 1d3833c..bd24b62 100644 --- a/.clangd +++ b/.clangd @@ -1,2 +1,2 @@ CompileFlags: - Add: -I/usr/avr/include + Add: -I/usr/lib/avr/include diff --git a/btn-pwm/main.c b/btn-pwm/main.c index 4ea1b37..37f2bed 100644 --- a/btn-pwm/main.c +++ b/btn-pwm/main.c @@ -1,7 +1,7 @@ /* * Use the timers pwm to dim a light on demand. - */ #define F_CPU 16000000UL + */ #define __AVR_ATmega328P__ #include #include diff --git a/build.sh b/build.sh index 654e14c..39ffa23 100755 --- a/build.sh +++ b/build.sh @@ -12,12 +12,14 @@ else avr-gcc -mmcu=atmega328p -DF_CPU=16000000L \ -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR \ -I/usr/avr/include \ - main.c -o $BUILD/main.elf + -I/usr/lib/avr/include \ + ../include/uart.c main.c -o $BUILD/main.elf + avr-objcopy -O ihex -R .eeprom $BUILD/main.elf $BUILD/main.hex avr-size -A $BUILD/main.elf avrdude \ - "-C/etc/avrdude/avrdude.conf" -v -V \ + "-C/etc/avrdude.conf" -v -V \ -patmega328p -carduino -P/dev/ttyUSB0 -b57600 -D \ -Uflash:w:$BUILD/main.hex:i diff --git a/include/uart.c b/include/uart.c new file mode 100644 index 0000000..17769e4 --- /dev/null +++ b/include/uart.c @@ -0,0 +1,35 @@ +#include "uart.h" +void uart_init() { + /* This make stuff not work, idk + // set baud rate + UBRR0H = (MYUBRR>>8); + UBRR0L = MYUBRR; + */ + + /* Enable receiver and transmitter */ + UCSR0B |= (1< +#include +#include +#pragma once + +void uart_init(); +void uart_prints(char* s); +void uart_printc(char c); + +char uart_getc(); diff --git a/print/main.c b/print/main.c new file mode 100644 index 0000000..a2ce855 --- /dev/null +++ b/print/main.c @@ -0,0 +1,27 @@ +#define F_CPU 16000000UL +#define __AVR_ATmega328P__ +#include +#include +#include +#include "../include/uart.h" + +#define BAUD 9600 +#define MYUBRR F_CPU/16/BAUD-1 + + +int main (void) +{ + uart_init(); + sei(); + while (1) + { + // uart_prints("foofofofo"); + // _delay_ms(1000); + } +} + +ISR (USART_RX_vect) { + // echo the message + char c = UDR0; + uart_printc(c); +}