diff --git a/main.c b/main.c index bbd7081..07501f4 100644 --- a/main.c +++ b/main.c @@ -12,7 +12,7 @@ #define LED_PIN PB5 // Define the pin connected to the LED #define TEMP_SENSOR_ADDR 0x48 #define TEMP_REG_ADDR 0x00 -#define BAUD 9600 +#define BAUD 9600 // 9600 seems to be the highest the ATmega328P can handle in this config void initI2C() { // Set the prescaler to 1 @@ -104,25 +104,6 @@ float readTemperature() { return (float)temperature * 0.0625; } -int main(void) { - initI2C(); - initUART(); - - float temperature; - - while (1) { - temperature = readTemperature(); - // Print temperature over UART - UART_println("Temperature: "); - UART_transmit((uint8_t)(temperature / 10.0) + '0'); - UART_transmit((uint8_t)fmod(temperature, 10.0) + '0'); - UART_println(" °C"); - _delay_ms(1000); // Delay for 1 second - } - - return 0; -} - void blink() { // Set the LED pin as output DDRB |= (1 << LED_PIN); @@ -139,3 +120,28 @@ void blink() { _delay_ms(500); } } + +int main(void) { + // initI2C(); + initUART(); + + while(1) { + UART_println("Hello, World!"); + _delay_ms(1000); + } + + + // float temperature; + + // while (1) { + // temperature = readTemperature(); + // // Print temperature over UART + // UART_println("Temperature: "); + // UART_transmit((uint8_t)(temperature / 10.0) + '0'); + // UART_transmit((uint8_t)fmod(temperature, 10.0) + '0'); + // UART_println(" °C"); + // _delay_ms(1000); // Delay for 1 second + // } + + // return 0; +} diff --git a/makefile b/makefile index 6ba8d24..ed9f3ae 100644 --- a/makefile +++ b/makefile @@ -9,7 +9,7 @@ MCU = atmega328p QEMU_MACHINE_NAME = uno # Compiler flags -CFLAGS = -std=c99 -Wall -Wno-array-bounds -mmcu=$(MCU) -DF_CPU=16000000UL -O3 +CFLAGS = -std=c2x -Wall -Wno-array-bounds -mmcu=$(MCU) -DF_CPU=16000000UL -O3 # Source files SRCS = main.c @@ -30,6 +30,7 @@ all: $(TARGET).hex # Link object files $(TARGET).elf: $(OBJS) $(CC) $(CFLAGS) $(OBJS) -o $(TARGET).elf + avr-strip $(TARGET).elf # Convert ELF to HEX $(TARGET).hex: $(TARGET).elf @@ -47,6 +48,9 @@ qemu: $(TARGET).elf asm: $(TARGET).hex avr-objdump -S $(TARGET).elf +serial: + picocom -b 9600 /dev/ttyUSB0 + # Clean clean: rm -f $(OBJS) $(TARGET).elf $(TARGET).hex