Serial makefile target
This commit is contained in:
parent
eb77cd1577
commit
f5101cff32
2 changed files with 31 additions and 21 deletions
46
main.c
46
main.c
|
@ -12,7 +12,7 @@
|
||||||
#define LED_PIN PB5 // Define the pin connected to the LED
|
#define LED_PIN PB5 // Define the pin connected to the LED
|
||||||
#define TEMP_SENSOR_ADDR 0x48
|
#define TEMP_SENSOR_ADDR 0x48
|
||||||
#define TEMP_REG_ADDR 0x00
|
#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() {
|
void initI2C() {
|
||||||
// Set the prescaler to 1
|
// Set the prescaler to 1
|
||||||
|
@ -104,25 +104,6 @@ float readTemperature() {
|
||||||
return (float)temperature * 0.0625;
|
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() {
|
void blink() {
|
||||||
// Set the LED pin as output
|
// Set the LED pin as output
|
||||||
DDRB |= (1 << LED_PIN);
|
DDRB |= (1 << LED_PIN);
|
||||||
|
@ -139,3 +120,28 @@ void blink() {
|
||||||
_delay_ms(500);
|
_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;
|
||||||
|
}
|
||||||
|
|
6
makefile
6
makefile
|
@ -9,7 +9,7 @@ MCU = atmega328p
|
||||||
QEMU_MACHINE_NAME = uno
|
QEMU_MACHINE_NAME = uno
|
||||||
|
|
||||||
# Compiler flags
|
# 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
|
# Source files
|
||||||
SRCS = main.c
|
SRCS = main.c
|
||||||
|
@ -30,6 +30,7 @@ all: $(TARGET).hex
|
||||||
# Link object files
|
# Link object files
|
||||||
$(TARGET).elf: $(OBJS)
|
$(TARGET).elf: $(OBJS)
|
||||||
$(CC) $(CFLAGS) $(OBJS) -o $(TARGET).elf
|
$(CC) $(CFLAGS) $(OBJS) -o $(TARGET).elf
|
||||||
|
avr-strip $(TARGET).elf
|
||||||
|
|
||||||
# Convert ELF to HEX
|
# Convert ELF to HEX
|
||||||
$(TARGET).hex: $(TARGET).elf
|
$(TARGET).hex: $(TARGET).elf
|
||||||
|
@ -47,6 +48,9 @@ qemu: $(TARGET).elf
|
||||||
asm: $(TARGET).hex
|
asm: $(TARGET).hex
|
||||||
avr-objdump -S $(TARGET).elf
|
avr-objdump -S $(TARGET).elf
|
||||||
|
|
||||||
|
serial:
|
||||||
|
picocom -b 9600 /dev/ttyUSB0
|
||||||
|
|
||||||
# Clean
|
# Clean
|
||||||
clean:
|
clean:
|
||||||
rm -f $(OBJS) $(TARGET).elf $(TARGET).hex
|
rm -f $(OBJS) $(TARGET).elf $(TARGET).hex
|
||||||
|
|
Loading…
Reference in a new issue