From eec328daaf55c39ed963a753602bd9ffeaefb807 Mon Sep 17 00:00:00 2001 From: Peter Gerwinski <peter.gerwinski@hs-bochum.de> Date: Mon, 1 Apr 2024 17:24:14 +0200 Subject: [PATCH] =?UTF-8?q?Abschlu=C3=9F=20Sommersemester=202023?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 20230524/bit-ops-01.c | 19 +++++++++++++++ 20230524/bit-ops-01.s | 28 ++++++++++++++++++++++ 20230531/Makefile | 8 +++++++ 20230531/blink_interlaced.s | 46 ++++++++++++++++++++++++++++++++++++ 20230531/download.sh | 3 +++ 20230620/rtech-20230620.pdf | Bin 222563 -> 222560 bytes 20230620/rtech-20230620.tex | 2 +- 7 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 20230524/bit-ops-01.c create mode 100644 20230524/bit-ops-01.s create mode 100644 20230531/Makefile create mode 100644 20230531/blink_interlaced.s create mode 100755 20230531/download.sh diff --git a/20230524/bit-ops-01.c b/20230524/bit-ops-01.c new file mode 100644 index 0000000..da61782 --- /dev/null +++ b/20230524/bit-ops-01.c @@ -0,0 +1,19 @@ +#include <avr/io.h> + +int main (void) +{ + uint8_t mask; + DDRD = 0xff; + PORTD = 0xf0; + mask = 1; + mask <<= 3; + PORTD |= mask; + mask = 1; + mask <<= 4; + PORTD &= ~mask; + mask = 1; + mask <<= 0; + PORTD ^= mask; + while (1); + return 0; +} diff --git a/20230524/bit-ops-01.s b/20230524/bit-ops-01.s new file mode 100644 index 0000000..ee8d240 --- /dev/null +++ b/20230524/bit-ops-01.s @@ -0,0 +1,28 @@ + .file "bit-ops-01.c" +__SP_H__ = 0x3e +__SP_L__ = 0x3d +__SREG__ = 0x3f +__tmp_reg__ = 0 +__zero_reg__ = 1 + .text +.global main + .type main, @function +main: +/* prologue: function */ +/* frame size = 0 */ +/* stack size = 0 */ +.L__stack_usage = 0 + ldi r24,lo8(-1) + out 0xa,r24 + ldi r24,lo8(-16) + out 0xb,r24 + sbi 0xb,3 + cbi 0xb,4 + in r25,0xb + ldi r24,lo8(1) + eor r24,r25 + out 0xb,r24 +.L2: + rjmp .L2 + .size main, .-main + .ident "GCC: (GNU) 5.4.0" diff --git a/20230531/Makefile b/20230531/Makefile new file mode 100644 index 0000000..7ae33df --- /dev/null +++ b/20230531/Makefile @@ -0,0 +1,8 @@ +%.elf: %.c + avr-gcc -Wall -Os -mmcu=atmega328p $< -o $@ + +%.hex: %.elf + avr-objcopy -O ihex $< $@ + +download: + ./download.sh diff --git a/20230531/blink_interlaced.s b/20230531/blink_interlaced.s new file mode 100644 index 0000000..bf14c3e --- /dev/null +++ b/20230531/blink_interlaced.s @@ -0,0 +1,46 @@ + .text + + .global main + .type main, @function + +main: + ldi r24,0xff ; 1111 1111 to r24 + out 0x04,r24 ; r24 to 0x04 (DDRB) + out 0x0a,r24 ; r24 to 0x0a (DDRD) + + +loop: + ldi r24,0x00 + out 0x05,r24 + ldi r24,0x04 + out 0x0b,r24 + + ldi r26,lo8(7999999) + ldi r22,hi8(7999999) + ldi r23,hlo8(7999999) +1: + subi r26,1 ; sub immediately + sbci r22,0 ; sub carry immediately + sbci r23,0 + brne 1b ; branch not equal (not zero) + rjmp . + nop + + ldi r24,0x20 + out 0x05,r24 + ldi r24,0x00 + out 0x0b,r24 + + ldi r26,lo8(7999999) + ldi r22,hi8(7999999) + ldi r23,hlo8(7999999) + +1: + subi r26,1 ; 1 cycle + sbci r22,0 + sbci r23,0 + brne 1b ; 2 cycles when jump, 1 if not + rjmp . ; 2 cycle nop + nop ; 1 cycle nop + + jmp loop diff --git a/20230531/download.sh b/20230531/download.sh new file mode 100755 index 0000000..770c3b5 --- /dev/null +++ b/20230531/download.sh @@ -0,0 +1,3 @@ +port=$(ls -rt /dev/ttyACM* | tail -1) +echo avrdude -P $port -c arduino -p m328p -U flash:w:$(ls -rt *.hex | tail -1) +avrdude -P $port -c arduino -p m328p -U flash:w:$(ls -rt *.hex | tail -1) 2>/dev/null diff --git a/20230620/rtech-20230620.pdf b/20230620/rtech-20230620.pdf index 465e2ee19360113c72429ef38943f84b9d297681..c6878ab9b8fcd7a62c52719772b826faffdbaa13 100644 GIT binary patch delta 2092 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 delta 2089 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 diff --git a/20230620/rtech-20230620.tex b/20230620/rtech-20230620.tex index 507e64e..655a4e5 100644 --- a/20230620/rtech-20230620.tex +++ b/20230620/rtech-20230620.tex @@ -224,7 +224,7 @@ .ppm.xz-Dateien sind kleiner als .png-Dateien \item mehrere Dateien, zusammengefaßt:\\ - .ar, .tar + .a, .tar \item mehrere Dateien, zusammengefaßt und komprimiert:\\ .tar.gz, .tar.bz2, .tar.xz, .zip, .7z -- GitLab