From bcbb32028933ac8529b0855a1af7421bfb380ba9 Mon Sep 17 00:00:00 2001 From: Jimmy Date: Thu, 10 Dec 2020 14:53:44 +1300 Subject: [PATCH] Intial commit --- .gitignore | 2 ++ makefile | 31 +++++++++++++++++++++++++++ src/main.cpp | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/servo.cpp | 16 ++++++++++++++ src/servo.h | 8 +++++++ 5 files changed, 116 insertions(+) create mode 100644 makefile create mode 100644 src/main.cpp create mode 100644 src/servo.cpp create mode 100644 src/servo.h diff --git a/.gitignore b/.gitignore index e257658..84f0256 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,5 @@ *.out *.app +.vscode/ +bin/ diff --git a/makefile b/makefile new file mode 100644 index 0000000..665f8ab --- /dev/null +++ b/makefile @@ -0,0 +1,31 @@ +MCU=atmega32 +F_CPU=8000000 +PROG=dragon_jtag +DEBUGGER = dragon +PORT=/dev/ttyUSB0 + +CC=avr-g++ +OBJCOPY=avr-objcopy +CFLAGS=-Wall -g -mmcu=${MCU} -DF_CPU=${F_CPU} -I. +TARGET=main +SRCS=src/*.cpp + +default: build flash + +build: + ${CC} ${CFLAGS} -o bin/${TARGET}.bin ${SRCS} + ${CC} ${CFLAGS} -o bin/${TARGET}.elf ${SRCS} + ${OBJCOPY} -j .text -j .data -O ihex bin/${TARGET}.bin bin/${TARGET}.hex + +flash: + avrdude -p ${MCU} -c ${PROG} -U flash:w:bin/main.hex + +clean: + rm -f bin/* + +debug: flash avarice + sleep 1 + avr-gdb -ex "target remote :4242" bin/main.elf + +avarice: + avarice --file bin/main.elf --part ${MCU} --${DEBUGGER} :4242 \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..452f96d --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,59 @@ +#define F_CPU 8000000UL +#include +#include +#include "servo.h" + + int main() +{ + servo::init(); + //Configure TIMER1 + // TCCR1A|=(1< 999; i--) { + // OCR1A = i; + // _delay_ms(1); + // } + + servo::pos(1000); + _delay_ms(1000); + servo::pos(2000); + _delay_ms(1000); + // OCR1A=0; //0 degree + // _delay_ms(1000); + + // OCR1A=600; //45 degree + // _delay_ms(1000); + + // OCR1A=950; //90 degree + // _delay_ms(1000); + + // OCR1A=1425; //135 degree + // _delay_ms(1000); + + // OCR1A=1900; //180 degree + // _delay_ms(1000); + + // OCR1A=1425; //135 degree + // _delay_ms(1000); + + // OCR1A=950; //90 degree + // _delay_ms(1000); + + // OCR1A=650; //45 degree + // _delay_ms(1000); + + } + return 0; +} \ No newline at end of file diff --git a/src/servo.cpp b/src/servo.cpp new file mode 100644 index 0000000..defcb87 --- /dev/null +++ b/src/servo.cpp @@ -0,0 +1,16 @@ +#include "servo.h" + +namespace servo +{ + void init() { + //Configure TIMER1 + TCCR1A|=(1< + +namespace servo +{ + void init(); + void pos(int pos); +} // namespace servo