From 6248bc8710809e25131d69661b7265af98158ea4 Mon Sep 17 00:00:00 2001 From: Timo Volkmann Date: Thu, 23 Apr 2020 17:01:48 +0200 Subject: [PATCH] basic c and make template for atmega328p and usbasp programmer --- .vscode/c_cpp_properties.json | 28 ++++++++++++++++++++++++++++ Makefile | 16 ++++++++++++++++ blink.bin | Bin 0 -> 8124 bytes blink.c | 25 +++++++++++++++++++++++++ blink.hex | 12 ++++++++++++ 5 files changed, 81 insertions(+) create mode 100644 .vscode/c_cpp_properties.json create mode 100644 Makefile create mode 100755 blink.bin create mode 100644 blink.c create mode 100644 blink.hex diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..edde3be --- /dev/null +++ b/.vscode/c_cpp_properties.json @@ -0,0 +1,28 @@ +{ + "configurations": [ + { + "name": "Mac", + "includePath": [ + "${workspaceFolder}/**", + "usr/local/Cellar/avr-gcc/9.3.0/avr/include/**" + ], + "browse": { + "limitSymbolsToIncludedHeaders": true, + "path": [ + "${workspaceFolder}/**", + "usr/local/Cellar/avr-gcc/9.3.0/avr/include/**" + ] + }, + "macFrameworkPath": [], + "compilerPath": "/usr/local/bin/avr-gcc", + "intelliSenseMode": "clang-x64", + "cStandard": "c99", + "cppStandard": "c++11", + "compilerArgs": [ + "-mmcu=atmega328p", + "" + ] + } + ], + "version": 4 +} \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..5460d84 --- /dev/null +++ b/Makefile @@ -0,0 +1,16 @@ +MCU=atmega328p +CC=avr-gcc +OBJCOPY=avr-objcopy +CFLAGS=-std=c99 -Wall -g -Os -mmcu=${MCU} -I. +TARGET=blink +SRCS=blink.c + +all: + ${CC} ${CFLAGS} -o ${TARGET}.bin ${SRCS} + ${OBJCOPY} -j .text -j .data -O ihex ${TARGET}.bin ${TARGET}.hex + +flash: + avrdude -p ${MCU} -c usbasp -U flash:w:${TARGET}.hex:i -F -P usb + +clean: + rm -f *.bin *.hex diff --git a/blink.bin b/blink.bin new file mode 100755 index 0000000000000000000000000000000000000000..f6df412a14592af78af0b50c02b055b61c61b3d4 GIT binary patch literal 8124 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 CwWHtw literal 0 HcmV?d00001 diff --git a/blink.c b/blink.c new file mode 100644 index 0000000..f405f87 --- /dev/null +++ b/blink.c @@ -0,0 +1,25 @@ +/* + * File: blink.c + * Description: Toggels pin PB0 every 500ms + * From: C-Programmierung mit AVR-GCC + */ + +#define F_CPU 16000000UL + +#include +#include + +int main(void) +{ + + DDRB |= (1 << PB0) | (1 << PB1); + PORTB |= (1 << PB0) | (1 << PB1); + + while (1) + { + PORTB ^= (1 << PB0) | (1 << PB1); + _delay_ms(500); + } + + return 0; +} \ No newline at end of file diff --git a/blink.hex b/blink.hex new file mode 100644 index 0000000..91db77d --- /dev/null +++ b/blink.hex @@ -0,0 +1,12 @@ +:100000000C9434000C943E000C943E000C943E0082 +:100010000C943E000C943E000C943E000C943E0068 +:100020000C943E000C943E000C943E000C943E0058 +:100030000C943E000C943E000C943E000C943E0048 +:100040000C943E000C943E000C943E000C943E0038 +:100050000C943E000C943E000C943E000C943E0028 +:100060000C943E000C943E0011241FBECFEFD8E04C +:10007000DEBFCDBF0E9440000C9454000C940000E1 +:1000800084B1836084B985B1836085B993E085B11B +:10009000892785B92FEF39E688E12150304080402B +:0C00A000E1F700C00000F3CFF894FFCFA0 +:00000001FF