From 9b4d68fd6fefe0126f24695aedef9320b010fa55 Mon Sep 17 00:00:00 2001 From: agsler Date: Sat, 13 Jan 2024 00:14:05 +0100 Subject: [PATCH] actually turn display on --- code/Builds/avr-hd44780/lcd.o | Bin 0 -> 6300 bytes code/Builds/main.elf | Bin 0 -> 7368 bytes code/Builds/main.o | Bin 0 -> 1116 bytes code/Makefile | 59 ++++++++++++++++++++++++++++++++++++++++++ code/avr-hd44780 | 1 + code/main.c | 21 +++++++++++++++ 6 files changed, 81 insertions(+) create mode 100644 code/Builds/avr-hd44780/lcd.o create mode 100644 code/Builds/main.elf create mode 100644 code/Builds/main.o create mode 100644 code/Makefile create mode 160000 code/avr-hd44780 create mode 100644 code/main.c diff --git a/code/Builds/avr-hd44780/lcd.o b/code/Builds/avr-hd44780/lcd.o new file mode 100644 index 0000000000000000000000000000000000000000..41163016f85aa8edd4001cd90e2f4afb63611775 GIT binary patch literal 6300 zcmb_gU2I%O6+YK%8aIT-T}&t;YBs5xx~a8xLlQ~}tw|Nq2bY%qQ6Y!B*Y-MIWxc!X zUY8`Q8at$^9n(4+$7Pj3D=Hx((MF0|DGK5t6bXEli zubn=3{7_fV#`&JoiTh4p*i+kcYEP|p_0+s~otD|s^nEj0J9YIKv~BYPr{rR$zUrh% zpgx!LJ9ch%-?0lbAN}C6_dV~rTojo(Hyh4en5@_8i<*f;-^rK}qH%Aw{jkHIsZags zHbmckLIkp!!$ei2)^jp*e2%*BW;i?QW)4j#&6Lt)>XUW$eEDy4jTyAfXX=NWXd}j| zW}I#?z8YhUyiRDZV-2rYVqS>yG9yA{s*U$Lx}?{UhNjkIB6z8xGZ92ytLN6wy+8Ni z+>G~fX=*k9GWCgJ&hm=a=C6M|s83gkE`Iv=E4=HlUHP#3esz6yb(InQxo4qXe`2BU z_~bPEjZ#OptKQV))Lq`fhSvhMHq+HfoHzDtn>Qo=_WU2uzwX`ZKm7PVy)Re4R(-<@ zE|=;P_2a4s=ST*rx7Q<%e|VGCSv&prKk~?fsjl5$edgZOw)EC?uek<| z*1ij^a_vUL03i{(Da0+d88{&;pn0gFy>_D=@|P_98ORS?cwo!K>tpTEj6seanqgLT)pnY7@ff7fV8tivUtWIvl*l!FM=#t%KJ&_)Z6> z92{S*gmgOgO%CpI@MZ^h%VS!@mGxwcW9M!xmW1@mH#EE*ttX#bG(t)&>F?UNI{w=v zt2I0`NokdW#@yK?_V-{6x5*KWxw1)FDf1e?rSK|wU1RP{68rfhjk$A4?C0AWbElH{ zJ0HUx@+*y_{%hm|jidf|$U@A%R$BC7jqK~>QyTLmCgo1KJBCxTUE_#|HXeakO5W<&Btsx17~DrN&Rod5!xO?v?j622`i}l7l~Ru;hn^(?jC>Pd(v3 z>idz<9|=$H+O33etmK!odzE}JTP|vVp8jyIQpyJhN>FQ=`Hv7_LA5i z93L6UmX%n^7KW8DR2&-%wEXRIF3c*elKet$a4;V!a)n%|EX6|9jEqFx^VuL`EN8>< za={-hjzvAPg#exX!F;Z;FIU*Byb<40rFI+|FIS2Ym2tCFm7#JmpZD|Gkths}%elRy zT9FNv)eo^CF|9&WH#+MPgYmE!@x+32)I;TL5N7?MQ9VyAsc!{V8V@U~d#Ri&gd_5N zrJyC>A1?Ys#nJ(PI0yr5B_Wr~AFNbx9+=G&NSP0!O%X$8M%u1r-rgOk^x^%ae-bi_ zE%R)*e1hj+WEEwkRk|^|Ch)D!fi1v9@`h;j-)ba~xCs65g80~AQ^f`(4`>19vZ$fU>sq~DcZ?W{8kMZGr zOkdlFIl%Z}n1&B?t?{S61q;P>B2NM`*KLWq90B5TpwdcIQ$=(*3JmRs(|2TBTc zg_bu$PUB;* zR|Yn7f~ah4`%rDZe(_%_;n`?Vd7Dki?K1KE7fS$yg(gPr`}Lbdt$zS_TZ z3|}64n{U|SQ|}e*n6C}rJCJR@X94*Bnqv6QLSge|EIz&ohVPe~pxOGhLvPP_ z!Q$ijGJM+{zMld&i?7$=>-hNM{_>qRd`~)jzXNU--(wEn0~X&pi?8JH)q#0`OaWA7 zpTjo*KAvNqKYmv*@y$4VSC-*B>hO(Pd?}0X#}3~DaI^J$)8PxP`QmFvBfeide620b z*Y6h&U(Mp{wD|tw@T~z~v-m!8_u6Z9SOWoq@0yg{6 z?eOgYZkF%warj!Xx%}?N{oQQw?RNMM0ymrQPKR$R__%K5>$dm;hwoM36zryOEm#H| zzUM4He&00n9e4Q70{1J1=)>@p9KIL8mxl}EVS*8}t7D z8<_uhGR2JhlO}$~MqeYp2S3V;g@t_XJ*S;xm@(;h1@rg~d`&TYY%R64qf-i#d;ofL VUYPgsOvU(m@lVpf8WPxy_#cr>fo%W) literal 0 HcmV?d00001 diff --git a/code/Builds/main.elf b/code/Builds/main.elf new file mode 100644 index 0000000000000000000000000000000000000000..bf35b4875071cfeb32cba76a24d6798823077702 GIT binary patch literal 7368 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 ZQ^DuqqWJ>h#67XSAPx@qSqD~o{{cboxtag~ literal 0 HcmV?d00001 diff --git a/code/Builds/main.o b/code/Builds/main.o new file mode 100644 index 0000000000000000000000000000000000000000..16b210030d84fe963eec3e5268eb23e8d6f1caa1 GIT binary patch literal 1116 zcma)5O=}ZT6ur}_ZME9g;7T_sf=xwUja0CHb)?jkQluE&3Bx2AG|?j^@6L^peAbaWVOp^p8I+^?$Da+5Y_{sqQ*X&#_MAmq`EkEAl|K zjg5!pO6|q#USMWPp!}$EkGiqBdjPYrCoM*USCDfl8iUr{9Fpo6X(`EOJF!H>e6@UODhY`N`DTc@DAuVZv*g>EzK9=I(}dzi}TE#*62 v#u}Y(p!f#Xw(xA;5adP;jnRBjJ@5r2c_psEIhS{s>oEHrLeoI5u%h2zufTVL literal 0 HcmV?d00001 diff --git a/code/Makefile b/code/Makefile new file mode 100644 index 0000000..8050431 --- /dev/null +++ b/code/Makefile @@ -0,0 +1,59 @@ +TARGET = main +SRCS := $(shell find -name '*.c') +FILES = $(SRCS:%.c=%) #main uart avrIOhelper/io-helper #uart#hier alle c-Datein reinschreiben, trennung durch " " und ohne .c-Endung +MCU = atmega328p +PROGC = m328p +CC = avr-gcc +#TOOL = stk500 -P /dev/ttyUSB0 +TOOL = atmelice_isp +#TOOL = avrispmkii +#TOOL = usbasp-clone + +BUILDDIR = Builds + +DEFINES = -DF_CPU=2000000UL -DLCD_PORT=PORTD -DLCD_DDR=DDRD + +CFLAGS =-mmcu=$(MCU) -O2 -Wall -Wpedantic $(DEFINES) -std=c99 -ffunction-sections -fdata-sections +LDFLAGS =-mmcu=$(MCU) -Wl,--gc-sections + +LDFILES = $(foreach FILE,$(FILES),$(BUILDDIR)/$(FILE).o) + +all: clean $(BUILDDIR)/$(TARGET).elf + +$(BUILDDIR)/%.o: %.c + mkdir -p $(dir $@) + $(CC) $(CFLAGS) -c $< -o $(BUILDDIR)/$*.o + +$(BUILDDIR)/$(TARGET).elf: $(LDFILES) + mkdir -p $(dir $@) + $(CC) $(LDFLAGS) $(LDFILES) -o $(BUILDDIR)/$(TARGET).elf + +$(BUILDDIR)/$(TARGET).hex : $(BUILDDIR)/$(TARGET).elf + avr-objcopy -j .data -j .text -O ihex $< $@ + +fuse: + avrdude -p $(PROGC) -c $(TOOL) -U lfuse:w:0xE8:m -U hfuse:w:0xD1:m + +load: $(BUILDDIR)/$(TARGET).hex + avrdude -p $(PROGC) -c $(TOOL) -U flash:w:$(BUILDDIR)/$(TARGET).hex -v -B 125kHz + +program: clean load + +reset: + avrdude -p $(PROGC) -c $(TOOL) + +size: $(BUILDDIR)/$(TARGET).elf + avr-size -C --mcu=$(MCU) $(BUILDDIR)/$(TARGET).elf + +.PHONY=clean +clean: + rm -rf $(BUILDDIR) + + +#Fuse m1284p external Osz. Long startuptime +# avrdude -c usbasp-clone -p m1284p -U lfuse:w:0xff:m -U hfuse:w:0xd9:m -U efuse:w:0xff:m + +#Fuse m1284p internal Osz. Long startuptime +# avrdude -c usbasp-clone -p m1284p -U lfuse:w:0xe2:m -U hfuse:w:0xd9:m -U efuse:w:0xff:m + + diff --git a/code/avr-hd44780 b/code/avr-hd44780 new file mode 160000 index 0000000..1360f8d --- /dev/null +++ b/code/avr-hd44780 @@ -0,0 +1 @@ +Subproject commit 1360f8dd0192444bee448bbab97a0ecb73941c90 diff --git a/code/main.c b/code/main.c new file mode 100644 index 0000000..9e18447 --- /dev/null +++ b/code/main.c @@ -0,0 +1,21 @@ +#include +#include +#include "avr-hd44780/lcd.h" + +int main(void){ + DDRC |= 1<<0; + DDRC |= 1<<1; + DDRD |= 1<<7; + + lcd_init(); + lcd_on(); + lcd_clear(); + lcd_puts("test"); + + while(1){ + PORTC ^= 1<<0; + _delay_ms(1000); + PORTC ^= 1<<1; + } + +}