summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jonas Gunz <himself@jonasgunz.de> 2021-06-04 00:55:03 +0200
committerGravatar Jonas Gunz <himself@jonasgunz.de> 2021-06-04 00:55:03 +0200
commit3ead2db8d979bab8fd8848d24de430979698b16f (patch)
treed6dbebcc4949faef881bb08ecfd59e4548a185ef
downloadanalog_instruments-3ead2db8d979bab8fd8848d24de430979698b16f.tar.gz
init
-rw-r--r--.gitignore7
-rw-r--r--Makefile53
-rw-r--r--src/main.c26
3 files changed, 86 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..bac74fd
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,7 @@
+*.o
+obj/
+build/
+tags
+
+compile_flags.txt
+.cache/
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..38f5292
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,53 @@
+MCU = atmega8
+CPUFREQ = 160000000
+PROGRAMMER = dragon_isp
+
+CC = avr-gcc
+CFLAGS = -std=c89 -Wall -mmcu=$(MCU) -DF_CPU=$(CPUFREQ)
+LDFLAGS = -mmcu=$(MCU)
+BUILDDIR = build
+SOURCEDIR = src
+OBJECTDIR = obj
+
+OUTPUT = analog
+
+SRCS = $(wildcard $(SOURCEDIR)/*.c)
+OBJS = $(SRCS:.c=.o)
+OBJ = $(OBJS:$(SOURCEDIR)/%=$(OBJECTDIR)/%)
+
+build: dir $(OBJ)
+ @echo LD $(OBJ)
+ @$(CC) $(CFLAGS) -o $(BUILDDIR)/$(OUTPUT) $(OBJ) $(LDFLAGS)
+ @avr-objcopy -O ihex $(BUILDDIR)/$(OUTPUT) $(BUILDDIR)/$(OUTPUT).hex
+
+debug: -D _DEBUG
+debug: build;
+
+dir:
+ @mkdir -p $(OBJECTDIR)
+ @mkdir -p $(BUILDDIR)
+
+$(OBJECTDIR)/%.o: $(SOURCEDIR)/%.c
+ @echo CC $<
+ @$(CC) -c $(CFLAGS) $< -o $@
+
+.PHONY: clean
+clean:
+ @echo RM $(OBJ)
+ @echo RM $(BUILDDIR)/$(OUTPUT)
+ @rm -df $(OBJ)
+ @rm -Rdf $(BUILDDIR) $(OBJECTDIR)
+
+all: clean build
+
+flash: build
+ @avrdude -p $(MCU) -c $(PROGRAMMER) -U flash:w:$(BUILDDIR)/$(OUTPUT).hex:i
+
+devsetup:
+ @echo "--target=avr -isystem /usr/avr/include/ $(CFLAGS)" | tr ' ' '\n' > compile_flags.txt
+
+
+#--target=avr
+#tmarch=atmega8
+#-mmcu=atmega8
+#-I/usr/avr/include/
diff --git a/src/main.c b/src/main.c
new file mode 100644
index 0000000..c0f35d7
--- /dev/null
+++ b/src/main.c
@@ -0,0 +1,26 @@
+#include <avr/io.h>
+#include <avr/interrupt.h>
+#include <stdint.h>
+
+ISR(TIMER0_OVF_vect) {
+ cli();
+
+ sei();
+}
+
+int main(void) {
+ cli();
+
+ /* Enable TIMER0 with interrupt */
+ TCCR0 |= (1<<CS00);
+ TIMSK |= (1<<TOIE0);
+
+ /* Go! */
+ sei();
+
+ while(1){
+
+ }
+
+ return 0;
+}