From 4ab01eb3a411b0a26ff7e5675555ad6013d8a322 Mon Sep 17 00:00:00 2001 From: Erick Ahmed Date: Tue, 13 May 2025 11:28:18 +0200 Subject: [PATCH] Restructure directory organization --- src/{ => atmega}/Dockerfile | 2 +- src/{ => atmega}/Makefile | 19 ++++++++++--------- src/{ => atmega}/config.h | 0 src/{main.c => atmega/main.cpp} | 4 +++- src/{ => atmega}/moisture.cpp | 4 ++++ src/{ => atmega}/moisture.h | 0 6 files changed, 18 insertions(+), 11 deletions(-) rename src/{ => atmega}/Dockerfile (95%) rename src/{ => atmega}/Makefile (88%) rename src/{ => atmega}/config.h (100%) rename src/{main.c => atmega/main.cpp} (91%) rename src/{ => atmega}/moisture.cpp (82%) rename src/{ => atmega}/moisture.h (100%) diff --git a/src/Dockerfile b/src/atmega/Dockerfile similarity index 95% rename from src/Dockerfile rename to src/atmega/Dockerfile index ebbb0eb..6404da5 100644 --- a/src/Dockerfile +++ b/src/atmega/Dockerfile @@ -13,6 +13,6 @@ WORKDIR /usr/src/ COPY . . -RUN make +RUN make all CMD ["./main"] diff --git a/src/Makefile b/src/atmega/Makefile similarity index 88% rename from src/Makefile rename to src/atmega/Makefile index 7b8930b..90fe762 100644 --- a/src/Makefile +++ b/src/atmega/Makefile @@ -2,9 +2,7 @@ PROJECT = plant-manager MCU = atmega328p F_CPU = 16000000UL -PROGRAMMER = arduino -PORT ?= /dev/ttyACM0 -BAUD = 115200 +PROGRAMMER = usbasp ARDUINO_INSTALL_PATH = /usr/share/arduino ARDUINO_CORE_PATH = $(ARDUINO_INSTALL_PATH)/hardware/arduino/avr/cores/arduino @@ -12,7 +10,7 @@ ARDUINO_VARIANT_PATH = $(ARDUINO_INSTALL_PATH)/hardware/arduino/avr/variants/sta CC = avr-gcc CXX = avr-g++ -LD = $(CXX) # Use C++ linker +LD = $(CXX) OC = avr-objcopy AD = avrdude AR = avr-ar @@ -22,9 +20,8 @@ BUILD_DIR = build OBJ_DIR = $(BUILD_DIR)/obj CORE_DIR = $(BUILD_DIR)/core - CFLAGS = -Wall -Os -DF_CPU=$(F_CPU) -mmcu=$(MCU) -I$(ARDUINO_CORE_PATH) -I$(ARDUINO_VARIANT_PATH) -I. -CXXFLAGS = $(CFLAGS) -fno-exceptions -fpermissive +CXXFLAGS = $(CFLAGS) -fno-exceptions -fpermissive -std=gnu++11 LDFLAGS = -Wall -Os -mmcu=$(MCU) -Wl,--gc-sections LIBS = -lm @@ -34,15 +31,19 @@ HDRS = moisture.h config.h OBJS = $(addprefix $(OBJ_DIR)/, $(SRCS_CPP:.cpp=.o)) CORE_C_SRCS = \ + wiring.c \ wiring_analog.c \ - wiring_digital.c + wiring_digital.c \ + hooks.c CORE_CPP_SRCS = \ abi.cpp \ new.cpp \ Print.cpp \ Stream.cpp \ - HardwareSerial.cpp + HardwareSerial.cpp \ + HardwareSerial0.cpp \ + main.cpp CORE_SRCS = $(addprefix $(ARDUINO_CORE_PATH)/, $(CORE_C_SRCS) $(CORE_CPP_SRCS)) CORE_OBJS = $(patsubst $(ARDUINO_CORE_PATH)/%.c,$(CORE_DIR)/%.o,$(filter %.c,$(CORE_SRCS))) \ @@ -78,7 +79,7 @@ $(TARGET): $(ELF_TARGET) $(OC) -O ihex -R .eeprom $< $@ flash: $(TARGET) - $(AD) -v -p $(MCU) -c $(PROGRAMMER) -P $(PORT) -b $(BAUD) -D -U flash:w:$<:i + $(AD) -v -p $(MCU) -c $(PROGRAMMER) -D -U flash:w:$<:i clean: $(RM) $(TARGET) $(ELF_TARGET) $(OBJS) $(CORE_OBJS) $(CORE_LIB) diff --git a/src/config.h b/src/atmega/config.h similarity index 100% rename from src/config.h rename to src/atmega/config.h diff --git a/src/main.c b/src/atmega/main.cpp similarity index 91% rename from src/main.c rename to src/atmega/main.cpp index b15b133..518d6de 100644 --- a/src/main.c +++ b/src/atmega/main.cpp @@ -1,7 +1,9 @@ +#include #include +#include #include #include -#include "config.h" +#include #include "moisture.h" ISR(WDT_vect) { diff --git a/src/moisture.cpp b/src/atmega/moisture.cpp similarity index 82% rename from src/moisture.cpp rename to src/atmega/moisture.cpp index 8963e61..11ed077 100644 --- a/src/moisture.cpp +++ b/src/atmega/moisture.cpp @@ -1,5 +1,8 @@ #include #include +#include +#include +#include #include "moisture.h" #include "config.h" @@ -23,6 +26,7 @@ int16_t readMoisture(void) { moistureReadingSum += analogRead(MOISTURE_SENSOR_A0); moistureReadingCount++; + //TODO: implement variance check (if over a certain variance discard measurements for this cicle) if (moistureReadingCount >= SENSOR_READINGS) { int16_t avg = moistureReadingSum / SENSOR_READINGS; //Serial.println(avg); diff --git a/src/moisture.h b/src/atmega/moisture.h similarity index 100% rename from src/moisture.h rename to src/atmega/moisture.h