From 73681aa79c492b8d89dded82c08b6af0606ff84a Mon Sep 17 00:00:00 2001 From: ayabusa Date: Thu, 25 Apr 2024 15:31:30 +0200 Subject: [PATCH] added LCD skeleton (broken) --- .vscode/settings.json | 3 +- Makefile | 1 + build/Laplace/clock.o | Bin 4660 -> 4488 bytes build/Laplace/gpio_helper.o | Bin 6228 -> 6216 bytes build/Laplace/keyboard.o | Bin 5760 -> 5692 bytes build/Laplace/laplace.o | Bin 2520 -> 2548 bytes build/Laplace/lcd.o | Bin 0 -> 2280 bytes build/Laplace/led.o | Bin 4176 -> 4164 bytes build/Laplace/time.o | Bin 2912 -> 2904 bytes build/info_headers.o | Bin 9104 -> 9096 bytes build/main.bin | Bin 68085 -> 68049 bytes build/main.elf | Bin 281488 -> 281772 bytes build/main.o | Bin 2468 -> 2460 bytes build/start_handler.o | Bin 4620 -> 4608 bytes build/vector_table.o | Bin 2488 -> 2476 bytes build/working_main.bin | Bin 0 -> 68021 bytes build/working_main.elf | Bin 0 -> 281292 bytes src/Laplace/clock.c | 7 +++-- src/Laplace/clock.h | 2 +- src/Laplace/keyboard.h | 1 + src/Laplace/laplace.c | 3 +- src/Laplace/laplace.h | 1 + src/Laplace/lcd.c | 55 ++++++++++++++++++++++++++++++++++++ src/Laplace/lcd.h | 40 ++++++++++++++++++++++++++ src/main.c | 4 +-- src/main.h | 1 + 26 files changed, 111 insertions(+), 7 deletions(-) create mode 100644 build/Laplace/lcd.o create mode 100755 build/working_main.bin create mode 100755 build/working_main.elf create mode 100644 src/Laplace/lcd.c create mode 100644 src/Laplace/lcd.h diff --git a/.vscode/settings.json b/.vscode/settings.json index 90879a8..77d7cb8 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -22,6 +22,7 @@ "stm32f730xx.h": "c", "keyboard.h": "c", "gpio_helper.h": "c", - "stdint.h": "c" + "stdint.h": "c", + "clock.h": "c" } } \ No newline at end of file diff --git a/Makefile b/Makefile index 455c30a..2854fea 100644 --- a/Makefile +++ b/Makefile @@ -47,6 +47,7 @@ CFLAGS += -g CFLAGS += -fmessage-length=0 # (Set system to ignore semihosted junk) CFLAGS += --specs=nosys.specs +CFLAGS += -O0 # Linker directives. LSCRIPT = $(LD_SCRIPT) diff --git a/build/Laplace/clock.o b/build/Laplace/clock.o index 182dca0591fd19ee99e8a3fc074898c12f34103b..11186027471716767e9920ea125a674f99825bf3 100644 GIT binary patch literal 4488 zcma)AeP|qM8GmMGC)u4zHk)kPrcJL-+uWJb?swAk(x%;Xlcve0ZP>K6_Jr*0?(9e1 zkKE2|Or>x^Pp)E-LyzOY6GT)*L5m{#htkUZBMNeY|LH#>94Lyp8o4_y7oX>S-$^H@ zhrY1+J-_GcecsQR$qTcK7bHmnw@EMxPZ&To$Smp@gHafSFl_t?zJDn@TwPqqY)VQv z4-XcQDVwqa$KQK%4&@6AnXQc!Su$kVf)rWO+2Q&*jM-QYm!`637v6Yx!#JJ2S)H6e zlMSb{`BNxQ%ui;+nQVR>4(CszJie1Lm3=lm{_>5M_8U zfZ3EyuqnO|EkUeIR>-0wQ#N}P|MB;J<43RVg`;dvRMh)W-b63S*na2zZFsQpGk5@} zvBhfK5GYGs-<1JmS-nBv zQ(qzQt5E{UA44};?#?49UqF>Iwm*+qd{^*~?CZWvW`Flz5LBO9YdWO-EwV0hxQD;) z4*rqAZ^$hvprR!(oymdxywv|38bJFh_0#6er@c=3Y|i|FWps2n=?PF&hm(*tM1E_W z4Qf-wKE>IPb{W&k>zo|~{Up)bl0wD!L-OCGz%{BOlS_d7HunPUDRO$mnGbDAkpIq^ zU;8WBwm9nn{TtNTKO|)U(f^A4SPD$yJhSrNchjArL2Zk4+FoKHvjO`9nRy(D#95Cv zOg5RbkoI+A3TJ~_FEJlyL)ssy3{~!@i9M)2LsfKfo1y)RST|=Q+K(yDFZbU;&rz+9 z;sV?j*A9`V#@U#5pP0_sDeVz?_V6CgXm60Mm)p`>h**%b8SOE7_VFGrYBR(_+_t36 zkY_(EyoXO{3fTs^Ew9yy?cuDXVM>tq@*b)hQF$M?tp+l*FNQdC zv;xKL=br1@KJq-kZ5!GjsJ~&(UespD^B`w;wJXG);_ROG8DfVxdl~dKqK2##FhS2x z@Q^I<$I<3OMa z2R|MTNtzE!sOvtArkIW!DJ(De zPN}5y(5vV7W5EY$KB#hW6OiN{eUe|m0V(hjO0x8?U@zd^jT*YLCA(dWEt;!!vuJ@w zjzy!flC@StZLDLrWA$1gRw))^X1ft-wwhMNG7Gg>A|6de6R}#eSnrf9fMUH>{A9F9 ziEXEmN|q;5@%8m+m5Q^S65bpr<2eF#0901+UNsa~^@`e$XFxL4y#!HJ=MYMKsA(Xf z`W3ybh75J!TwU$0sll4Zd1zOjptp+;n7m!=HieWxw4(N{-%|D3f3L3(gR5$Ym%eXT zm%RzKucoR>Pg#|w{5avc+2z^X_1T$mI6s4z-1NosiP_6JSYFP|No$z;M9ZCiEAw5?-Cq)}Y$ zOch&g$6AjxCXknrmsi)uBlc>flsHM6ddqYoxSmsXtL&6lQRP%SjRK@>-&DSQZ zNaHw#8Ig(+xe_-b<%VV3X2pust!BlkPQ}3;Vw}d4+@VjT)Q)ZprkBnqcSb@ZV+^&4 z-15~NbeeXp(zHrOv1+#Ya1+dnkH6k(R*W4VdLr3X9OG_PtlDZ=G4r-r=-6g#solC| z6&*Wvxl^oLtw_Oaq!iTuxTqf0jt`ynGyPie+H#v=B^7NxLmVdo3EDh>RWk z@ZASJc+|JCNg&?|_VmIKa<|d_G#&K6B!5ww?(Ieyy8x4}6_7rPqB=1fxddIk-IoHg z<{$74N_(Vz%8;~QIv@>8hq{i?4fcWNRr%oUZLe9OTglTDb`d>MD0p`Uo=}t|R{xou zupNPUDWLB1RsaX#X$s&oz|$09kGma>!m{sBtcJfdyBY<0U6G*zA)u!`RY7w%fYJev zM~Gzi-WYLUq~zVZw&kqUt{FA_U1hO{@%zGT`raI>YUKjXj zfp-P6w>R|rf#44X{#xMg1^!v!y8^p#tdxIH;1PjwfoBCS3cM+>Dv-TUVEl`Me@Woi z1b$E8PX+!`;9CN>1mZUlt0N@vkiZiHPYb*#@CqTuvh~DmNPB_!s{#iJagpi#kshM< z?S^9(5S=#1sw?56BZ?0T2cjj@F(F#8ZHSVxWEDD`<~*-kNDGq-Tx#$F=lb1aQJ7h}18&&*9Ho-+j+`=@xeDqw|Byw2HvmRm_)k2_p4N xjnGpz+(ke7mKs1k-Px3n=9BvLEIYi0>pO}%x4HRf-o1VgvA%D)PKd7GzX2xQdD;K~ literal 4660 zcma)AYiwIr9Y6OKAIGud*h!N%U2$o*WpsWwP1na7=O#@ZyKRWG?$J&0jeTRg^$YvD zO2sg`H?yO##$0B3uw7Pl4v=e8Lb|Jn6+H6n9UrWd;6oc&|Kz; zayp&K1Sd23S&$C{3F?{rG{ouX+YaVuK%VYqoXVVpjB708A+S6Q7Q$-nXBJ*-FIXnP zGO1%1<2**kE|QroRUP^^5tPAn$Ajs?BH3HR#=altl^jv-j z<~W$1`Pa1^&N2XA1I%(U-w)9~h;YG*_JQny8VXz8w+=t`k@|FVmh6=$KMpBtWbN8I z%}-L&B$MQTJh}eK?c4tA=tlktXR7-|Dof-yIHUAE^t`GB@_>D$_Zyh}r;2g`s0XY50rg*oABng^ zYD02A0Uqv@zChG3Ndr887R+jkGnKxHtj!s9=fKh8q|c2}9Zvl8kI95g~$^*DPW7LCL+}swULGH8Sh$15D57TUbrHc5A&&Bxg^{S&f&Uf~D@N22<BvO#Xk)8ApAL!1@qztOgdS18kaG0QNwHQhSi7bBcmRKmE;+;f$t z&~pp7t3=|1jM6JBi2hFsR_c+e8%KKF@y7L!LCOw>nM`wEGzJ2tQag zS5WeJz)yR~BY^|;@-U$3;9d{hQ=p*S&K12PG4p_DOp?+;jO^PEsiP3#jgUi|?b_Jc z z9uEHaT}^?wMitMB<_~FsLsiXN(R>w$^T>ugK4*!~n4Bdxn*548QquZYPidaY|L(6J zg3Fqpw?4d~q&KehSG3@%k`_3l15lEZ7 zQwa-1%Z-{DHO?8!owgC3Z#7Pt1*;uB)+toYMtIq1ncqh1QJAM906Wz$onOBZy#+v>EQ!S3Qj2nn2Xg3TFn;d#v0~WL#R9$;~XBn3;|dTZ(t3L|007rQKa=yesX&=HfWd?D5nznLYMMNRLm1 z`12J?#1iq?oXo=O8>}mbn_PO#oj3zS2B19&R_o#rPi7R2zmB zhUfHPyRl-eG(lyRJGEs%qg5y$glGB81nlxI3=4%zq3}x0Y`2Y)8Lpc3l2tw!V{O^@ zWs(Vpv#H#X?ygqq6>EvzWO$3_Qfan~xU+n5*q#zHtLythWAX8QIHNGmClZ?o?|$I! zGlVY=LTE#*_cDy6(G`Ks4D^$Q5aC*Ws>Q>Bs*ZadA&hOcitPx*;!`zWAs+k~OS z=CImL+7*~pah%ntPzZYkF&pQuuFUzy>tL7@j*nYz;=f`yg{+hr+M7Rk?1SgU9xte7x16nPPWm|&7$Rd%V zVHqT{+-{QyoL7;ex!fr&Rq87ZFfrL!UT&FZoK~Y{)Jx`ufNG^~+5wQCL<)^s&4gpz zk#wbH)W9jVa5Q3AR;#kyu^`F+KSse7w!8b};os8E?$+|4frW;+Hw(eJVyNc-b8H#5x=JUgaH67bdim<<1KxYp- SAI3TTUWWc&wVeQMzyAU!vas3! diff --git a/build/Laplace/gpio_helper.o b/build/Laplace/gpio_helper.o index 1b90e95773a4b61fd31851ae5e564fcded8da67c..0216c7913cb0a98a54974da14f12e0ad52093e9f 100644 GIT binary patch delta 960 zcmYk4O-NKx6vyw!d-L9zd1Eu9^I>X@X{hML7)lZrejx^#QU;PP6fzae0!Or3j8O{( z7uKa#S-Wach|MC!P0_+OL5tjkn;?S1+O(-f*g10we2aVU@Bjawb1s+nA^kSJl$6!0 z)_c>(oAFPJQNf;pXIa^ZqG zXw}qBQ{p9S2`Ix0>oulQe{1Jiq1R>jDYiYR!Me&dO56Bf}w<~!t*%18r~5Bdud3aru|F}&_s0s zrY2aXq^H94V9iiNUXZ;O_)Jv5)B$m#eLSHHM3$O{*zAQYwFxuzflJW{Q$MVbSI8p< z;R;a^dqZ%DUNFjZ5!T6z@rW__N)zJjUG=x0!^cW6W#Em%`MQ{+v+$du``Mg>A4DZg zw;@6!N}1+im%K8jMYv8EJ;1ai0^@{9rQ31$&fp?7v|@ps|1rHSyq>iFDb1)0Z-YYi z-cTK8rEjmYLm6j}68vdi`3}pE=8NxG;y5+!4AK~NX9oXibq$rsR<6;xq0PEC8|_Ia zQrc-)~L^hK&=b&OHp2O4AX%pW6yoDui$oL_q{mv-+kZZ^4=!5k}EOU zmfxRH^ZkYpj!y{j7;n0~il-qxb5aPyu)0t%Obdv-)@LN8Njl{A(vaRW#hks3L#@+$ zTje-9<^b8I{kpi&Uch0Q*63uG#3x9e0ioZh=Ef#`S9uv8#=L+J_)yQ8Oi1AVRDsD0 zO4peUO|_JN!I}#R+_2hUs`hpEToP(ihM(bAV!~gdvu3=1ix%wu|KtJ{2%}i%^`*|? z0?FjS7pgOuLXf9*im4oakY_Tv0Q#$0HQ!1Jo3#T_MhUMGUc`oa=p_R7lF&@8KBhL< zA@Vb|Lk%SzBTNU@0qf)i*gFkrY6voQ!xDKV+;A4eJYk5cTmJ zNonm39mTBl>{Z4oWA9M{fAlNQL3v((@*HztlG_uY8e=tw|FrQNmD2vg5&N#vr~Fs+ zPk()|W%Bk!Zfa(1_S*E+OjbYe-zd~MRZ{1Dx$w=2%thbgoL!e2nO{J+wutnsELrINhBaXDa0-#2VI?UY&f3qL4JWO4iZG2}mE`X@9EE$!oNey+&g~&4WNC^ delta 729 zcmY*VJxo(k6h7y^d;3cNpnb1O3z%YoGSE^CMo0v02m&L97!qTUXf4(DJ>az#gAo=J zNAM&@6DAg&NJw=tn&{@}Vn`g=G*JiHjDv~is*5+d=ljn0opbKbtAWkzR!WRm`zOzd zjR^xlf?g7DBS2`K>C-;~KuY{20(}XlLZ}Lt2&r0h=2sUuGsd-)Yrm*R6gUX2P9&xw@)#X&!3un@MgA`lKp5HLU`D6X~`E_KbauRv01h5a@)F#1R@b&Tw2Y zI%mWB%$I2FvLBA|a6^XtRTd*htjKUc-vL@z-3G{rsSS)IwbN?e;Y8^Bm6%9v2^6R3 z&=|9Ra0L#8p0lR-M*yN@l#~792xwmRVv+921kTZ8dG}^7pNR$EdoG&RT|3AP))04M zp`*Zx*mjeicBa$@!xyga0Q)1;9^UaX;6zv(V!H;=Im-<5K8~PA;!c<5^SpD-ih7HY z8S88UEuPWNS|@dz$FZw9YJL|nZ^>P)rRt7XE;+^PDgH-#5lEYLZ=tbRuF*jtOI^YK z%%D@RHr&-)-oi51L&bGU|24riw^FY3%#ThQqWM@53efz|tE1 Oif7b=7{DG4g{|K(Q-v4+ diff --git a/build/Laplace/laplace.o b/build/Laplace/laplace.o index b93b56a1428b53c79f810292e9ac3844968930c8..a45af194d57827994756bd130a1184436ebcbc08 100644 GIT binary patch delta 507 zcmZ9IJuE{}6vywmz3;1`Xq!}gmX~<)D2*68XtcH_J~t6GO;ul`D$zDEijB#0Rt5`` zsgu!UmKY2MHZl8%NYuIL;wJb1yZ`?=Ik`D^ftSEx7;fFZkf^_Z)!o=gVu>-<)JYNq z5<2!T7zcHpBF+^dA(T%la9xpQ4*HV>*W&J3fBV}{#C_B!mPtUUvdeZKmYW;nWH5s% zNWv%{fOEum%(-Ydvc8!smoxcXq?jw^D^5Jhs-XTap=8>f{X0}VrzKK9Qi|M@w*61KNcDpbEQZ~h39FdYEYed?2zRws zdb#9_cuD$-X6H6xvhjgKH6@BZ*T56`3*O@g?0F1Bao2lsd+swwbQsbI*gYW(-oJ7Nk`G33g7$B zkHWp&28_4%XYFhunaVk-4MN07!AksuVw>m`zUohFg@y=e5E{N-=jW7~5K;`TQYg@bP zs8taZA%w&M6;z1}C;owQ;EFi%KXB$w=?STa@_XYMXGuWtr19^4&&-?m)}QR`UE-WG zO`I*WBZ;wlmb6%F5|-IKn`5_r{OkvIckBN7D>px2KhIQux^(r=)Xm}Um+(nRzZ8E5 zIFlzqWm}L2#tfd`gvv0iw+K?!eHe@>xsAc6ej~}qtVmnNk+#eQfSIzo{TKlm8&c{O zIB+WsmQiN@o%MhqJ$)5md>wlBS1aZ9)r!3w`aNGn{)+7c-f&d&24U=9cY-S97Ub6O@SGD3 zon~d7G`)d{9nt94qCqQe4WWuVqo4s4q1UO2FgUFGPVg*+*-qPb-YDBnEAXR8w0)=N z_uFx&R%VkEdmRyuFG07tb_l7|83cYw+z^dXBua0FgAaW#j!Fk3ujdb(h6s`0k429~ z9h}vkq>|MdS7w~mYhLU2yC|XbBQx9G-rlg6E9W+-3=S2+Emxhjm47b_`WSEc5X71B zQGO=JijXzY^VjpKFL*s)sOK^}`BXiZyZDRj{CWjO;iFiLKLggP?l}7_oy+V`8>gn` zQm6SDe%4&zi~KRZ#Ggn%Ma^=IlByK@<6+Wl>e*6CQ#GgdG0}_}El5meqgEYHt9CJ& zoF^@wh&I{u#72zCvd84yF_|iNL?(NLoq|ZGpt{WwH*V=78d<-VJcWUSQ?!AAS%qg5 zVm9%OVC+dk97zrw{7TBcuCS)?WreRRysYqDg>8jBg%Kh0f2?Gx3I>xEl)kF)G$Ber zcOie~MmK_3G=On9#*XGNQZaLzA{NYTL=kf_b#BvdjM`|?)&M5Si$){#50h3AihkSw zTR^Yd_jLgBGuImgfsgJ^ByEKvfK&bQzANH5>^4R*lKg*Kf-Aj~?g;w+CqH%aqXiwk z0r{C&M0;bH{F04``XArg|MV-vN5_Db`Mx4Xk+wYtnYwXH>F=PGZ-b{dqOPVz`)y+B z7_jVDtSiJQ(zXN0nkSP3!6rtLw!H>9xo;7FT(l=Gnl-(z0Iy@fvV91<#3<4>`nyWz zTSGoNH{~O}&KH2Em@*d89SHB~B#?=vbzPzM`yCHOZ>LH7eGWw;oE7naFK8zq?Mw72 zR`PtCiTl#D>+^jB9w~+ZN$*2g)dEoOMW}m+%(vlp4@fgkA5F?vz@j~2n$Rs6<|ooo PK8j2F?csdi|AXIO*?kUV literal 0 HcmV?d00001 diff --git a/build/Laplace/led.o b/build/Laplace/led.o index fb9c2e21c7c2a63a1ecb841b797ba2280a5e1190..345b97c9fa826d5d954adf839a99c324edf58d4b 100644 GIT binary patch delta 382 zcmXX=JxfAi6n@Wn?|bhR{78~ekhsw$ljS%P*-DHT2dr9RmR3hV_4 zc9$)pxfHR?t%z&dEV?RwB3bU=xg8O7dMx@zHq)s(duv7JmeUn+odw<)%d9oFWH`>r zt||I}{BR(}YlzpR6k<|3_)BhR6KDo!p+|L0dvjdU9ngn-5^iz;D>TpEXemX`=p1wQ zGtVPC^nzI&0{TH8SAj;fk3Iw?ZIIUOCRQft%}!9+Waz|XsbR+G!5q_u57M9>gH5JXN92(>f?1$C~T;ro5(JKu0_tOx7Rg2<(B0d}Lnn4^zmhIJ-P zUJeKCku2vzCR`PF61w=Ko6?kpvEF36r-voDZBJgVWoy!tC9f{aT(xaU=(byeP{n$_ zEW-=hv<$-!2o3njD_7vo5LG(~Q|g^fw|_C5;!$|REcaRsd1`=CBRalGK()sSLLp&> z2hVvxYtjdXflu7ej~M>)VgAl=P#NZ@te#K=#~0y4pB6O7^V_*fp}0{>Z5E1U{1GEK zubp60?6_BR=~8JWlOD~c^O^EmEP^d9RiCrXYEZ>};~1XNZ&tv|!j{&b%&{s5%%sliNSiKU01H diff --git a/build/Laplace/time.o b/build/Laplace/time.o index 5d25b1ec0f7556fed8e3d433f89c69cb85887503..ab9a9f4b879ee6568709467a055e54424d0e46b8 100644 GIT binary patch delta 335 zcmaDLc0+7}0%O8N#nyTTAmHf(60blkAV`By3`~q{Rg4S_OiZkyAc}>x5JYjXx&tX@ zdk|Ys!WXEPiIHO^kYbJp2^mTzfP|RXuY-g#Ktd*x6+kviI!K&_{V0gyVAlZ3u(Ggb z=5d#RM5TdTHsQ$zjG~Nflie8AgckypF|x1$Nd`R-a}N9V&Gn4C7}?$ZLKU11%_o0g zk(yk}94_W>prD(Un_66)n4YSelbV-al3{DWFxiq>dh$JHnaPGMs*`^)YfKJh*}j>J z)r^I4%VbB+a>ka)J30Lsr%dML(gu>IT*{1RCr5IrGqOx>1d?+muLP1QlP?0v8Iym4 WNkwjTi9PHL42wWcf&!qU!2kfG7d|8a delta 340 zcmca1_CRcc0%OKR#nyUh1_lNmAZ9oSB7h(bLNPEgvb8WWFfcK(#)Bvp)@l&N!5Rpp zm_0#kJqcf+S|&!0r9g@~6C`9PnE(=EV&?*>Dgp_aNLB!aSkgh_EbKo(6bHKzP==L- zH8YR91SF~oclDR@KEjP8eI59m{HzzeOy(GidVDdv|*~!W*8hrYB zrMcz#McKvi1^GoKlm9ZSP4;2gwwZ<1goSa>WJ}I+#-7O=IsGRu;9{A~!ll7DZ?Z0z pGUN5hfn4g0Jd-PdoILn$#ew<@toR+ zo1)tPl6KhFQCn4OGE-pcXw58RNpYw_JY!qOlKnOopsY8h5vu;8YSFF@)G6q+58>!e0yxaq@Y}=% zFOgs2auG3SmIgoV`6ygdtB6 z^)1pzQ1y_Or)$#>@2BbieOax#ZInq!u0CD)>YlI3uFCZ;DIdh_Tqh*cx7Q_rZbX^B-Lrl>-0( delta 914 zcmXw%O=uHA6o6;8nZGH)>6@LVs+rNY$bi6{)RMp^z$(B5h2!G3IBJ-7Upn z$w8`Xv~8-c0~7eLNZ7}utVr6$@kdn^A|>ph0Jp&M%m{rS;&jZv z3;kwMp9a;BT2$AjpE!)u|NXg9^)_HmQgC(U-7jw$Qt54At_8z%fu9Yk74auddGUr` zwu}X70e-fKa92Qx83;R*;9m~?=d8Fu`_s& zQuuWp=_BV@H@usgBJV0Yk9n4W5%vP}Y*94ImeEWLGs*sNPe>1LqAw5Nhf(`hf*JlG z6qA~ywWZKL<+I^(<5XU^tYlj6&gq4;eW$;NABi;ckIm0~*NavrXB2Merj;=Y+^cl+ zl+x}yUYO3$7-rTQFB+!J`;=p${P=V&_gXTYNe$`AN!{d+luwP8owPHlxNVs5hKr`2 zT+6CI=vw07d_A4uUt4GBbAB@xr!V>gzw1X!}1IbC=oD1wK$XZ<{{Jn!{=~ zlJo!}n3A+xUSssVN3>U)_7omW<7b>3JL`o~`C*o67v$ly@gW52)j1 zRT}ihR0`8C!PB(i&EPlqxsAi#+P)o1CG*|JyLKp0EKqMMiz*!^?HZ1(BGIjWl$rhk KSoPMUr2hph66zoT delta 678 zcmX|9O=uHA6rPvaWVa;Rrkk457}=U)p*P9ue2SemUeztdVCVC?&X}BG<`nX5 z0hO#Va{?PRw|Gf5Cy`J5k37ldG1BrP$I&@~4)KN^^PJsbN6{HWC!@J*9NF#B+%?i{ zAfM7xI5KD^kssDGTVh()g61%LkS`oE64l#U(HugNz<>yHQW?ZJ%E^)&Z~&b+uI8hz zGk}Wn5S2z7>rt%QXC%B=iQu`6oMTl#j*l9Y7qpz&hqsLAlfNrD_nN&}751E>*^S+M zg`N$v;rs+p!V5mteuCIWj8oOVTZ;SO9fXey zs;wht5etZ`PJ_a7?AnDYfRsZ6@Dw(k)c{-?*~A~hdP!D5>C_&# z3ExxqA$!y&_Z%fxD7zX)llT@U!a@H!pp+tF&s5+}%p!@|4ruU}+ diff --git a/build/main.elf b/build/main.elf index 444eedcc1ae2edb78ae29f29dc31dbfc2219661e..9187d1d37c1235f1c2f3fc6b97394340755b3bd7 100755 GIT binary patch delta 8236 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 delta 8097 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 diff --git a/build/main.o b/build/main.o index b5601668f96494505469d464e8935eb3ca931e65..b36488c31be8afe035d8195a6a97b6b3d46f704a 100644 GIT binary patch delta 285 zcmZ1?JV$tf0%OfYMa2~VFTV=@fB*NNK>6@5hTFC zpa!8Bm>AjIfI>`6tU(}(h4nX3f{B9_B+bOg@d89Ku^UfZro{0LEX2gJ@q!NHWG3OLs3dtFXMGRmfCqFM;Av3RpA>JuJKWFkWCe6vqnG`1fW3ppp z*lf+bl9}<%Fq3ltZ2I v$mF*i>Z}RO3=Bq-7cvV^*5MRjoHE&#Q=N4S(0dkOu^LVR)+<0qF9Y!au5M5t delta 292 zcmbOuyhM0{0%OZWMa2}yPaOvTzyJHspa3FaybsSi7#J8>fEY+JW&lYZe;}dC2ohjm zP=inmOpI)jKp`e3)))}Q!ulO3!NkD|l4fG$hyqbe>}(U4DRF!P3o$Wlyr9F#Tbfs# znVy%LqL7@CSTy-JW2H)3ZfbFHVtT4>PHJ9yNrtTf14xP?CqFM;Av3RpA>JuJfAVD} z#mQ@!H2C!MN^{Hei?WO33-XIfCVytK-)zFXf|>ElB?H6sH9(?xL$kT45-9gxSu!TJD9 zv4{bcv6_Np7}=D7Y!)WgcOV%SR$dT~k%Jk;V`6s!@mSae!MfOEz#2HZfjqWmFq=sU zNU=`<3NZ5VgM`?fKx}>>I|ayT2Wn>&fJmGKNeDvNKR|3DFq=aLsEg51p$$lRftYjH zfs&jlAQk3ZIzSPoi6xvnKwKLrw}6359i&o)oo%uOld1ra4dke(g4HJQL`}|R@`zpq z(jmdF45V6s7zEsam~jrsgFNmari3&|hG}97PdLb(5+)!irinlkzPHJ9yNrtTf zLup=dW_n&~ib8TmV$tO3Z1*NtvlmQGWYd`Zirr_k1;-pV#u<~Z@*QWqF?lY(KO@8B zxBTUd36oO={22=-ZxzsHoIClUfHKo}_Q`C5YK%IQbp_QKD<+2m$qkchf#j3POM&E; T$!7)CSy%8fFdUf7$S({4VhvuR delta 559 zcmZor=~0=Wz*w?TQJ9gN0SH(UnHU(@87JE_iq&T@GB7Y*6t@5gv#_rQ@>n=nd4cjQ z94wwdigh^kF6QZW?BKH z*!Kbj82R`?LhShG3T%Y z6>?4lsW#`*0g5n9Ea7|#;@UvD1q@tkK`K?)dnQ{jsR~GgOjA)&1*=WqX`h_SE0PA&zSRTW96Qo#@ zTLdgyz`1y{0J9g<H^NKUm^HNh3k~0#E zCU0lgOU= z$rJhg8F?l@dYFv45fL+ndy0{DGHf+C6n8ktC{=_Cb5W2)?=xe+`!JUc?$~< zGvkfP2ig4@UrZL{C}%X7+{qEl^p|1sJq{&CmC1~p>Z}ngK&vM&WD%b1z$w5uVR9f) RYym4wYywcsV)8;xaR8G%FW>+G delta 178 zcmZ1@yhC_`0^^H~ijNtE6B!s7SbTs43^2W&EY4)k_6x}8GM^m6ba`?dvj&fTUTJQ5 zeo=ODd_n$XLuTE{Q<$qJ3$X}E#ut|)CTD}lq7sJEyyDFCywnth%)FAx$}F{;=dp+} zGd`KTmEE85%VbuLaz>lUwH(1r?2MByaVW9su`n>0Ouon=Jeh}6fH7&ZET=l-oXM_0 Ua?RviPIXonHU@^plO5TG0cJZfdH?_b diff --git a/build/working_main.bin b/build/working_main.bin new file mode 100755 index 0000000000000000000000000000000000000000..db522136997043d3e875977d0b74ea4eaefa14ac GIT binary patch literal 68021 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 &= ~(RCC_CFGR_HPRE_Msk); - + /* // UNSAFE CODE // 23999<=>0b0101 1101 1011 1111 SysTick->LOAD &= ~(0b00000000111111111111111111111111); @@ -87,7 +88,9 @@ void init_clock(){ SysTick->VAL &= ~(0b00000000111111111111111111111111); //set some things in CSR SysTick->CTRL &= ~(0b00000000000000000000000000000111); - SysTick->CTRL |= 0b00000000000000000000000000000011; + SysTick->CTRL |= 0b00000000000000000000000000000011;*/ + + set_led_green(true); } /* OLD diff --git a/src/Laplace/clock.h b/src/Laplace/clock.h index da7fd2f..f60c307 100644 --- a/src/Laplace/clock.h +++ b/src/Laplace/clock.h @@ -7,8 +7,8 @@ #ifndef CLOCK_H #define CLOCK_H -#include "stdint.h" #include "../device/stm32f730xx.h" +#include "stdint.h" #include "led.h" /* diff --git a/src/Laplace/keyboard.h b/src/Laplace/keyboard.h index 942c240..fd742fe 100644 --- a/src/Laplace/keyboard.h +++ b/src/Laplace/keyboard.h @@ -8,6 +8,7 @@ #define KEYBOARD_H #include "gpio_helper.h" +#include "time.h" struct button{ uint8_t column; // ie: 2 diff --git a/src/Laplace/laplace.c b/src/Laplace/laplace.c index abc4c1b..8133c56 100644 --- a/src/Laplace/laplace.c +++ b/src/Laplace/laplace.c @@ -2,6 +2,7 @@ /* Initialize all needed peripherals, should be called early in your program */ void laplace_init(){ + init_clock(); /* led init */ enable_gpio_x_rcc(GPIO_B); led_init(); @@ -10,5 +11,5 @@ void laplace_init(){ enable_gpio_x_rcc(GPIO_C); //column (in) enable_gpio_x_rcc(GPIO_A); //row (out) keyboard_init(); - init_clock(); + lcd_init(); } \ No newline at end of file diff --git a/src/Laplace/laplace.h b/src/Laplace/laplace.h index e66addd..fca4239 100644 --- a/src/Laplace/laplace.h +++ b/src/Laplace/laplace.h @@ -11,6 +11,7 @@ #include "led.h" #include "keyboard.h" #include "clock.h" +#include "lcd.h" /* Initialize all needed peripherals, should be called early in your program */ void laplace_init(); diff --git a/src/Laplace/lcd.c b/src/Laplace/lcd.c new file mode 100644 index 0000000..dfa300d --- /dev/null +++ b/src/Laplace/lcd.c @@ -0,0 +1,55 @@ +#include "lcd.h" + +/* This should be called before accessing any other led related feature + as it sets up all led related peripherals */ +void lcd_init(){ + int _var = 1336+1; + //init_DMA(); + draw_screen(); +} + +void draw_screen(){ + +} + +// send command to the LCD +void send_command(uint16_t command){ + *COMMAND_ADDRESS = command; +} + +// send data to the LCD, should be called after sending the command +void send_data(uint16_t data){ + *DATA_ADDRESS = data; +} + +// we assume orientations is portrait +void set_drawing_area(r/*TODO*/){ + send_command(MEMORY_ACCESS_CONTROL); + send_data(0x00); + + send_command(COLUMN_ADDRESS_SET); + send_data(); + + send_command(PAGE_ADDRESS_SET); + send_data(); +} + +void start_DMA_upload(){ + +} + +/*void init_DMA(){ + // clear specified bits + DMA2_Stream0->CR &= ~(0b00000001111000000111110011000001); + // set them to the correct value*/ + /* DIR = 2 = 0b10 + * MSIZE = 1 = 0b1 + * PSIZE = 1 = 0b1 + * MBURST = 1 = 0b1 + * PBURST = 1 = 0b1 + * MINC = false = 0b0 */ + /*DMA2_Stream0->CR |= 0b00000000101000000010100010000000; + // DataAddress is 0x60020000 = 0b0110 0000 0000 0010 0000 0000 0000 0000 + DMA2_Stream0->M0AR &= ~(0b11111111111111111111111111111111); + DMA2_Stream0->M0AR |= 0b01100000000000100000000000000000; +}*/ \ No newline at end of file diff --git a/src/Laplace/lcd.h b/src/Laplace/lcd.h new file mode 100644 index 0000000..d148df7 --- /dev/null +++ b/src/Laplace/lcd.h @@ -0,0 +1,40 @@ +/** @file lcd.h + * + * @brief Control the lcd + * + */ + +#ifndef LCD_H +#define LCD_H + +#include +#include "../device/stm32f730xx.h" + +uint16_t volatile * const COMMAND_ADDRESS = (uint16_t *) 0x60000000; +uint16_t volatile * const DATA_ADDRESS = (uint16_t *) 0x60020000; +// to set them use : *COMMAND_ADDRESS = 0x1234; + +// define the differents command +#define NOP 0x00 +#define RESET 0x01 +#define READ_DISPLAY_ID 0x04 +#define SLEEP_IN 0x10 +#define SLEEP_OUT 0x11 +#define DISPLAY_INVERSION_OFF 0x20 +#define DISPLAY_INVERSION_ON 0x21 +#define DISPLAY_OFF 0x28 +#define DISPLAY_ON 0x29 +#define COLUMN_ADDRESS_SET 0x2A +#define PAGE_ADDRESS_SET 0x2B +#define MEMORY_WRITE 0x2C +#define MEMORY_READ 0x2E +#define TEARING_EFFECT_LINE_ON 0x35 +#define MEMORY_ACCESS_CONTROL 0x36 +#define PIXEL_FORMAT_SET 0x3A +#define FRAME_RATE_CONTROL 0xC6 +#define POSITIVE_VOLTAGE_GAMMA_CONTROL 0xE0 +#define NEGATIVE_VOLTAGE_GAMMA_CONTROL 0xE1 + +void lcd_init(); + +#endif \ No newline at end of file diff --git a/src/main.c b/src/main.c index 235f83e..b520001 100644 --- a/src/main.c +++ b/src/main.c @@ -34,9 +34,9 @@ void main_entry(){ }*/ set_led_blue(true); - ms_wait(5000); + ms_wait(500); set_led_blue(false); - ms_wait(5000); + ms_wait(500); } } \ No newline at end of file diff --git a/src/main.h b/src/main.h index 8626abb..a4991d3 100644 --- a/src/main.h +++ b/src/main.h @@ -11,6 +11,7 @@ #include "Laplace/led.h" #include "Laplace/keyboard.h" #include "Laplace/time.h" +#include "Laplace/clock.h" /* our main function */ void main_entry();