From e5c7c81276767f6fef3362569170266962e14e79 Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Sat, 16 Sep 2023 14:53:55 +0100 Subject: [PATCH] Small font complete --- README.md | 6 +- firmware | Bin 164920 -> 164924 bytes firmware.bin | Bin 48424 -> 48652 bytes firmware.packed.bin | Bin 48442 -> 48670 bytes font.c | 406 +++++++++++--------------------------------- font.h | 4 +- ui/helper.c | 50 +----- ui/main.c | 9 +- 8 files changed, 111 insertions(+), 364 deletions(-) diff --git a/README.md b/README.md index 89af051..7da9519 100644 --- a/README.md +++ b/README.md @@ -9,12 +9,12 @@ A cool achievement # User customization You can customize the firmware by enabling/disabling various compile options. -You'll find the options at the top of "makefile" ('0' = disable, '1' = enable) .. +You'll find the options at the top of "Makefile" ('0' = disable, '1' = enable) .. ``` ENABLE_SWD := 0 only needed if using CPU's SWD port (debugging/programming) ENABLE_OVERLAY := 1 cpu FLASH stuff -ENABLE_UART := 1 without this you can't configure the radio via PC +ENABLE_UART := 1 without this you can't configure radio via PC ENABLE_AIRCOPY := 0 easier to just enter frequency ENABLE_FMRADIO := 0 WBFM VHF band 2 RX ENABLE_NOAA := 0 Everything NOAA @@ -27,7 +27,7 @@ ENABLE_WIDE_RX := 1 full 18MHz to 1300MHz RX (though fronte ENABLE_TX_WHEN_AM := 0 allow TX (always FM) when RX is set to AM ENABLE_CTCSS_TAIL_PHASE_SHIFT := 1 standard CTCSS tail phase shift rather than QS's own 55Hz tone method ENABLE_MAIN_KEY_HOLD := 1 initial F-key press not needed, instead hold down keys 0-9 -ENABLE_BOOT_BEEPS := 1 give user audio feedback on the volume knob position at boot-up +ENABLE_BOOT_BEEPS := 1 give user audio feedback on volume knob position at boot-up ENABLE_COMPANDER := 1 compander option - setting not yet saved #ENABLE_SINGLE_VFO_CHAN := 1 not yet implemented - single VFO on display when possible #ENABLE_BAND_SCOPE := 1 not yet implemented - spectrum/pan-adapter diff --git a/firmware b/firmware index e1fc53e86e3127b471b2327df84174c441624677..380988ed8b23092cc1f5233bf4b5cd3a9cb5c2f7 100644 GIT binary patch delta 12997 zcmdnd!L_G@Yk~q}%S1(G**Ciw7(ken0R$Ks7(o;R6NprJGci$~iDzG9)6^!$S&UlK zWf>Wr8Q)A#WMqtFOxwPjk+GVQQDnP0Gh;g=W61XXER1K_7;kRxgJ=*ekG=B~GyY)Quszv;@h~G} z({yzs#!9ARTcj2T^+KoZ|f8Pyn{Y?n1-+{wuJZTod| z#!yDawbOMi8J&5bZDnA1wUvS4|L+3~FQ(U8GA0UY{bEoyE=cz?u3*sSyukM1+VuC9 zj7J&Ur*E}lOlAz7E@{oUobl=OgVv16OoIQWtJyFHF-A_Wv|+r-Xt6!mmQj+CF?f5f z9iuf91Ul8e~W^YNpmqMFbJ?Y zfTR*Y%C_HiVN7OZ+&kUTjqy5@@W1U+?u<1|j4!rN_he*eV%#--zBi*QqwDmi-i*Br?FgmlvY-M1WvUPfw52FF2&-C3sjHZl+(?9w!dNVQpo^I#M_=j=Yc56Sz|4ia8 z{~48Ry=^_E3T(ZZjHC)|Js6ExKlE=83}pPx#MrytH-zytC>=?LG0tU-*uFiC@g*a_ z=3nCq18wGu|G%&M#q#0I_Vp2rqKu4BrXP)DoXXg?Jvxf9m6`GB_J^^I`izWa(*@%h zB^f=YYsWL1GF{rSJt>}%i_wtrw-SSf=Lboa4}X5Cc&qtKbugJc*>pj2k(27p2IXi5 z2E|!YEFTiRr@D>8p|%`xu+2Tc$A1W^CJjHHER9iShAv-*m?H zjEp$i((wD`vQzP-#$O{;+WR#azbwj3(1J z<}uncKAHY8k1?6?$@I{CMs3E1>5ch}`HcS4Kjt%Pif;JHB&Wm z>lq`a3l}r$f-;p;F{1}#)AsISMteryn!oJcG6e#A85Ed4luf^0!f458I$f}oQISz) zyKyPwPexf#QmX(bHwK0uTUi)*8N?YF6g`yW7??gh-R@b=7|+B8Dh7PEPG48a_>9qh z`_w8%ZbqB!dYObv`e%#2^Ai#9VJW}G|y zW;0`|;=KRaZV`pb3^m3Q9bAfxAEy1!cAHVC%uomA_f3y)VHB73`>D*(02QkFpY0}5 zpv=$&<(EvK+`{O~C^`LM3!^pT@9DCwjLVsrc1}Om%6N&1d*}37ZJ^}8m4V^n^ownb z-b_L}r^~f7Ix*@_Pi$utmY3Sez@W5~fkAdB1H<>NG7KE6r7QRuL>br^7$!4)keNQY zozc_K^S>ekn>U9cyOIUNNeRXej{g~EGn&1X_%HGBxfU~n!jAQzkm6?$VPIpBWnlbp ze>!gmqqr%%Dz~SJM7_i^Cx(kZ_8L~mYjWOHu#D4WyOHV4>J2kY=s&wTquHD12i!nL zZJ8d~!RXBU@}D6CuaW`-uOZ`y$J1AKFgo%c`lrdDz+eRy+B5xo2cs_2taa1XIvI@^ zyQfEXGHMEx{bMxU;`I6A_q`yKeAi8%)XC__<^Ior;qCJSZoccLzv^U^Vr-wz+Qq2N zSUBCVi!oZ%`QHO22E|DXHXe*0Z2#GKGOb|z&^vu$7voySN7Mbg88z!c#jXf5gTh@- z28C5@3<@B#)ps&5%-~^A0F{6bls;^o#K53<$Yb&b#t+;69`v47!=NR0;eeM=1%sB* z1r8NP<$5Is#l0R3Q~rOy^OqUS+YRPj{rmH~>2Ki;ANI0N-tN7_pJg(GGV^5S85=xZ zGrOG_E`6a|#HR@5_o@clc*Te5;dQyglL z>)(mq(|x5Y7`2%$FlpOfoa(E=z_;@E_oqMkRxxNWT-0Ld@#I?Z{d?hG4kacNhDl6{ z3`&nTajp3OJ?<~-Y!7orW7f$mvptMiCNs}w)MmI?`M(@!>Ao|G1hxl9fMZb#o3h%O6-%EXH9luzsNR2Kq=3Y&w%km_a8=O_Q}~Y zK^}J)IVZEuR*{gXIIa@$X<%zuE_i!0&$?YX*~#q!>uj!-5*3UF z|Gppl&8x_u%&~$~f=h{6fnjpC%>VCS{ziE-&zcv*pvQ3W=mP;I21QU%ul!RW$EuNb zgYmL<>H?e8+-w;r; z@dSB7@(=55zLnAyLQ0m#+yxBEj9{m(e6A1mnh4ZuJQvPcaIO6JJ^DAJGM}Ok#|nnY zoD%#>ObV|hCO_Bk=2$6J(N!E>ak}{Zb9Hb6n*4`DnL&wRvXY`U1J?@fhf1EGpDTHO z1Q!jU9Ky-Ppb)u}fgx?@^j&?7a`hEE85lx17!-7NGB8-}WMBy6U{FZqU{J{9U{EO7 z$-v;elYt>{Cj&#uN(P3xoD2#+D;XF}Rzh-I7B_=J%t{6Zo0SXjLKRJ@`^`17^eOIUiya}lo&6(e{j%SI)lUbZatGO!_AKm7)^5--fmK0U{%`V z*YhaPhp4|qFAA)}~ z>oQzC3l>@L*=NA`q2B8^i!Q^(BVeI5o)ZliKREto)n&N28!WQIbBY1u2aDfZ9$00H zWi0a&s$kUOyg18iVjY8~+Qmtg%rm>37%x_3ie((vX1Lk>V4l~-n9E@t6B)EwZ?Vl_ zQ=08rXu$YE;&MvFZuoYIYJ%F3^9ZM-xGd^KWCXOX3RDjp-br|>+EvRdYHDz-`Wfe zN^CRK75{(l{B6LH=gIitP_xQ&n*rko-(U40L6G$zK`XGJ^Dma!v#S`iSucRZ%sdYmFn+KESy0WW4bg1m zdCGwCgFZ;ChC!S8A|%s-)JrJodR{SL{Gj-YW%lhV25p9mu1__=S(@RZ!&8uh)ji)C zFn$pHW%<-PbH;O?dLeQp?oC+LkTo{DswR?Oj^Ofu%L~RVa-kk22hhikc&ZK+X@DT z87mkV4y|Bdc(j6n;noTU2AP!%46-6C85knD85I7kU|9#wf`MVx3I>K#D;O9q zO+Pt_v6Ywa7n?GJ5{Dw|ivQp3rbka^T+g^{I`|$VG-^IYdw~K*6bQc4I%q|9oZ95ql zcJ5?gIIxp}flc|eXHtgdbnj`5lDzf*lQS3@Zfyd&)^&Q}G{$2%3ijLQ7i{~IuH7%(X{Y~o+}{riRK-m@4(8Fi;GoW&^Y z7x?c}{c$ax8;nMLo|iVUuK4yn=pQt&r+|Fz_>a>&R+7c^RsC@-hMP{$8I9PW>g@i3 z0-MF!_<8CsNM|>9*L0@Ypswch|FaooC2?kq>85iSLj?=|f~rMOi;8IlyY;{Canond zVbo`In|^u@qc*F--yh#6O#eNH(UxEG@BZgnUfQ0QqL@~E`z|!yeJ-OihBgicg;ov*1yCBEy$h1Am+xX=*s+U&p_YR| z;W8&A*t$3v6!z_6U^uaBI@dhLeT=uKpPa|&Ua!3hk_Gp(K^n2$D;XHBvoR=4U&+Am zgpEOA@k$1Uk8BJI`&TkBu&^^IY~y55II)s}fsdU*VIC)g!o`&g3=-@N3Tn&@3R_n) zFg#w#!0>e?0|Wai28IKi3<{E~7#IY$a(IKNoXum^}|`uoTC z<3E0UpZsId^VbS2D+QDo7{7ln`SV6WK#5}|h@JQ6`tt*Bu!cIQ`2k8*pp*wnVV8F? zFx=k7z;I~?0|WckY_}VQ?0UwGiV_Szz90I@zW2x02(L(Qse~Wj4S)Xme&yGX@5w*I zd=wZMKFI%OWKdxE@qPXD+=Yya^&bCx{CqtO8UB2q|Lf29eZT&E_x#JGsKD^|`|n?j z3QUTBzkmPr_xtBRj0%6h%l&osPGB%(I3U4j^5=W|FBY9|7a0`(eqZ;4LD|mB&O@kz zxnP!)+C^J$$qHcx22I6_tO|d>3;xiqXH&HFV9^%4@%_8$A9HU;B?eWgf*;=v{+cTI zfSUVE7k++U^jo#S7|i>0;pg|ge^d+JJ^%h)f4c4>MrFauKiUlX#?lp=2`D)#K4d&%)yeB$Y9{@8>$q*z`(%H4pJ(kG8S^OGBcQgcxDW0Aj*z`fgvXcWQ9YH z4g&)NhX~j)A|SxPz~HDP!ok46#2CoQ#=v0U262TFLp{VX z^8mZVhS6Bonv64BbX~B&$S?Jbj0_C+Al>#1>=q6V7VHf64)q2G4)zSm zA{-nd$qeiq1sv=Q42glBuFj4OAU85FFfcN)a0q~c(b2J{iC(Ok!r1 z=BAd0hP+%1{;qD}x=`-+U)vd#+_x}oU}mhHzLA+po^j&ziy$gv`bQ8|FkO&^$(TuG z`E)lHCOyVI(@R;HUyPG0kW4*}7dyohc7A*u1?< zgUOCr>BCl#S`cPrSis7_0OE^)BAS7bVI?aA1IxDUue6!^7?aNQf)s%;BSSqC1H&aG zeiIV|!^sSf- zVuLV5pTrap8-yY9OQwR@APkY;fW!xx`v8d#a(B)&kXjIi=$|ta#0Fuoeq{!kSs)Gw zLlh{?2C+dH!sp#KeU=`Ro{$cjxXzsET1rfEf+=%AYC#yH{>pSteI|K9lX)N^5QYdF zOt;i$k~f+&A0!0A5a9zze2{aGAn`%o5m+$2OP@(k&}IQh4+ul_*-SsF&!jJyun;5! z!Vuvb(>V>86(U2phlr5h$@(#X~-lGO3Ph_Omd8S zrmr+)k{3F&9Hb3|A+AwaG5wYylN{6i9n*gqGU?TqAthpv=Rh3*kZJ}7i25z7Av_rW z%MMh&&`wl7XhaPn0?`i|8$jlR+TKWfW`@#T(^nZW$<>2ubR-FerAQVXV`E^@T*1H~ zz`(%3!~jkt3>s(-H$mcmWMg2kL{o2pBoFea3ld+1ouQt=6HS8$k^+#15G1}GI|D-` zn)(PNd64=PBz_b-1H-I!3=DFN3=Dz{j0~CV3=BuMf;>YtP<1P%$by!L{?5;WzM802r_-6V}3#Qqut0Wj0il;|fGRX^V*~-Ac z0yQd;mw{o!*6CfAOm?6dlT(&VevJF4OIk6>3xQg>FxNQqF)-}fI^D~PNsqB`dZiUp zJ)`OLpH@urOiQ*+m$GJ(W2)XZ-O8FNj94v8=@ zNUoYL<-iojbYa`{DhH;#dQfhg$pnf2DWVJvhmc}&ohSpt1x^M9m;(=rGBCVD;@=cy zVA$`#zyN9yfx`KvVhjvhco@LVF#!f<1~xGUhMW8h3>HvV%ZV}6 zGtA*+Pyo&Rf^e%6k=dvXb@vyc0c?%z)*nXz%Ako45Aze`TBk0kX|Az z3NC;QM2eC};tUMmkoX_O85mr}5Dxw?&cN_6g@M5U>L39L1_s|K28I{VG@v5Ez;KWU z;bRjC28PTAh=YX~80#6_B^VeqI~f>2EozX96C@ZIP9j-YECK03gAxfSjZ{l8FoX&) zFsMK+oGih>0P06_K|^4H1Ovm&ZU%-Jc1RSgmtbIU3}Il%fI8^71Or1P7p#!0XJoi2 z!N96;kbaj0<$neRP-O?oHX>3C45dg0s7pcSW?|)ki4+4vE;l08yGk)I zh)OXqn1Ou6z{n6T#lWyu2;qTDDFy~34h98&a1=2!R7f!}9Fzp7fqDi|kTgm$F#JXG z(IhFF))NKW?%rdX+cr+SPC+< z0rD}(!yh0XU~mC7`#}z1lxAQMV}|*Ni9u8v9OPg^fZ^kR6=?hWZp}oN>u8fEz%%;5cGr5SL+K=tfEdpq}=69#{x5Gw8}NFs$H# z9n$uKa0 zrer{g5EQ3#WEdDuAo*au3E&P?mvV0!KZbLF)1-IGC0aIFbE@+6XCK9 z3>`=zlqSo-;K|3pkO6gIkt_qlRw+c3)yXn2$aXO>)IjBXWf>S&)w3}uG=PJgnPH|Z z1H%<02P~9jVAz9H9q*K7U;vH2K`J9ghEuW(44?@zP_%+l^$l4DhO458+VQz814AtX zg94=BVPg0r%fK+71Ca|^2nWoTW2grYn85ov96N#-n1H-{IL=gJOGcbVW7hy$bq&x!yXuuN`q@YBaBG16kgOmo! z+9ti7>*&u@gaEzhKaHa40oW3rPC(_$6&M&8I}o*7w*mvh4kQQ6R$yS*hs58Y zz`y{SorQ(qUIhk*7l<@e&u~V8fguzr2yZJus@F515MW|tcmk>kS0c*#?+OeI>_`se zRAgXqPG?|{VujTA(uxcW8<2dcp~%3H>%hPe1oeQWA_K$0Tn2_OV17L#gO4Hu18A%p zmdKJ785lOIGBCt|9KgWHP^iej@CGT-H7hbO=!$`BFK}5tO_712mY0Fy4A?+Mh9!y& z48IXRWZ0<4z>q3}XmTA@WMIgI)t>bX%nX+mA*0{0`u~L@0|UP}#K)kr{X579@{l+M z@#T~l7y>0hz6D`M27M(4hF3^I?xF;lWrJnoNF@e_Z(IxtkTxPSLyi&yLpwCYRYCc* zN{N9XR0LEpKn(0tVqhqgg|u=(7S5ag)Q3sFeuWYPg95w~WMwjRe>y- z1vN|r7?>FHR2Ud~OA#e>n+gNNTBO839aIv66ho_hei_IF1~0hEVPu%A!oYAGW&r~; z!!8vDhQ@XV22hm*iusc&koiwgGo&6=o?KI5U=ToZ@iP?$hNt$3=KW6<28Plg28Ir3 zl<=xDFsL#jd@KgxD?s`;ObmLe3=BE2%)r3RV6Do)u$2Saa${g*a8m`1-h=yFY7C&3 zn4c;GgDnH3jsdk*Q&kxlGLQ@?pT5+eNxpuPDg%QNQom@iDg#635@?=cVr1B&%D|w; zjp*1N1{o`esLHOWGBD&J#pF9x28NYLH4BFt14Ay7yrdcfgYIGm@W_P_6JtGtz8WO6 zfC3*BQ)X%m;7LkY=5SPFU|>cH$S^eqhN(IX3@&USLl_wn)fgB+YsVm&g^3|gje!BQ zS{A}*W~fnP0MC5GYN9qZ1_lFeNVo_x)H5?oRAXRB6l7osgT};CH3smq7+Bicp~k>) z)tP}o0GgQ&t1&PHZG(h7D5fu}F)-92`S89P14C;*1A`CLypL)O4118&GpaK%9G%a= z0267Ont1_sayVpx#vQfFY`LJIPe>I@7@Nc_9% z3=Dsf+Su>Z85nK~F))Ncef$sP!)ip;$FIS_AghX~>}50<7;GKD9)NUfbTk+kK&uM+ zp<{5S8Vn4rNIvq=U|?7-jA#!%D8Y_$dh0|%0WCulG*fL2k% zJUCy2fq@Y$Uk_>@F*9t^U|^8g1}Q;7ae7b#wMlzkgMlGe0WsQeQ-gtlRT{y6q`|-- zD1hMq)?i=&&F8`_gQr+pI z$-uB(kb%Jn8pJu83=F>O7#Mt^kM-UJ7YceoQb!1?0fOh5=X)-WmE`w%k z21bTunhXr4q6`f6usGYJ$-r>64KcuT73AUq1_ljiB6_OH!0=ER5r>~N85lq-S76PR zpPCE|(c%mYbx;TLXfZHw@-Q%fhKfOHOhJo*;UNd2+%VQ+VED<%Fx@(YNwPjvi-BPc zQfZu}1z83ItC;Jx7#LEx5%Jrm#lUbAX>4VY76U^jQa5&o7G$;_G&}|h-6L8I46!iZ zGcht;(PCieWMBY~RtYgM)ib=&f-HA~^{KvTF)*ZUV_*=41}}>?1A`2_MrUG>(q>>d zhg2QtYcnu-OMz1~xT)i$&A?EIlz>CD85sDGO3`F(28Kp1SZLHUG8AYtF#IfKV6cJ) zUz;`q!#AXk`&4ZPh7U+hmlfI!3>8};O&yRA4{9?ofR+ePWCg`PBf}|e28O>ui1zax zZOCE-Sb}_`&A_0Y4y|rP7#JD8YeQBa!GfG;``1vW8KPY2Zuxm7!MTY!In(3fnIyI^ w$!5|Noz7p)B)a`|1Jho{>C2j!#2DXf-`m7w&&Vh_{ckgqGNbHt#TF)U0EKHMtpET3 delta 12763 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 diff --git a/firmware.bin b/firmware.bin index ec905c6e423f395cfe1dbfbe1acc088161ef1c01..44a068c1b69f00612a134aee6a30d269fa43cce7 100644 GIT binary patch delta 5637 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 XsimPIFBgNqt6R7(l)L%Yc0E=AH=>`9 delta 5413 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 diff --git a/firmware.packed.bin b/firmware.packed.bin index 04e203f8a51843ca35d4d71cd6f4386e87dd4c7a..daed101aa45c7ad0086ed01deeb19298a84ec8e7 100644 GIT binary patch delta 14637 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 delta 14408 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 - {0x02, 0x01, 0x51, 0x09, 0x06}, // ? - {0x32, 0x49, 0x79, 0x41, 0x3E}, // @ - {0x7E, 0x11, 0x11, 0x11, 0x7E}, // A - {0x7F, 0x49, 0x49, 0x49, 0x36}, // B - {0x3E, 0x41, 0x41, 0x41, 0x22}, // C - {0x7F, 0x41, 0x41, 0x22, 0x1C}, // D - {0x7F, 0x49, 0x49, 0x49, 0x41}, // E - {0x7F, 0x09, 0x09, 0x01, 0x01}, // F - {0x3E, 0x41, 0x41, 0x51, 0x32}, // G - {0x7F, 0x08, 0x08, 0x08, 0x7F}, // H - {0x00, 0x41, 0x7F, 0x41, 0x00}, // I - {0x20, 0x40, 0x41, 0x3F, 0x01}, // J - {0x7F, 0x08, 0x14, 0x22, 0x41}, // K - {0x7F, 0x40, 0x40, 0x40, 0x40}, // L - {0x7F, 0x02, 0x04, 0x02, 0x7F}, // M - {0x7F, 0x04, 0x08, 0x10, 0x7F}, // N - {0x3E, 0x41, 0x41, 0x41, 0x3E}, // O - {0x7F, 0x09, 0x09, 0x09, 0x06}, // P - {0x3E, 0x41, 0x51, 0x21, 0x5E}, // Q - {0x7F, 0x09, 0x19, 0x29, 0x46}, // R - {0x46, 0x49, 0x49, 0x49, 0x31}, // S - {0x01, 0x01, 0x7F, 0x01, 0x01}, // T - {0x3F, 0x40, 0x40, 0x40, 0x3F}, // U - {0x1F, 0x20, 0x40, 0x20, 0x1F}, // V - {0x7F, 0x20, 0x18, 0x20, 0x7F}, // W - {0x63, 0x14, 0x08, 0x14, 0x63}, // X - {0x03, 0x04, 0x78, 0x04, 0x03}, // Y - {0x61, 0x51, 0x49, 0x45, 0x43}, // Z - {0x00, 0x00, 0x7F, 0x41, 0x41}, // [ - {0x02, 0x04, 0x08, 0x10, 0x20}, // "\" - {0x41, 0x41, 0x7F, 0x00, 0x00}, // ] - {0x04, 0x02, 0x01, 0x02, 0x04}, // ^ - {0x40, 0x40, 0x40, 0x40, 0x40}, // _ - {0x00, 0x01, 0x02, 0x04, 0x00}, // ` - {0x20, 0x54, 0x54, 0x54, 0x78}, // a - {0x7F, 0x48, 0x44, 0x44, 0x38}, // b - {0x38, 0x44, 0x44, 0x44, 0x20}, // c - {0x38, 0x44, 0x44, 0x48, 0x7F}, // d - {0x38, 0x54, 0x54, 0x54, 0x18}, // e - {0x08, 0x7E, 0x09, 0x01, 0x02}, // f - {0x08, 0x14, 0x54, 0x54, 0x3C}, // g - {0x7F, 0x08, 0x04, 0x04, 0x78}, // h - {0x00, 0x44, 0x7D, 0x40, 0x00}, // i - {0x20, 0x40, 0x44, 0x3D, 0x00}, // j - {0x00, 0x7F, 0x10, 0x28, 0x44}, // k - {0x00, 0x41, 0x7F, 0x40, 0x00}, // l - {0x7C, 0x04, 0x18, 0x04, 0x78}, // m - {0x7C, 0x08, 0x04, 0x04, 0x78}, // n - {0x38, 0x44, 0x44, 0x44, 0x38}, // o - {0x7C, 0x14, 0x14, 0x14, 0x08}, // p - {0x08, 0x14, 0x14, 0x18, 0x7C}, // q - {0x7C, 0x08, 0x04, 0x04, 0x08}, // r - {0x48, 0x54, 0x54, 0x54, 0x20}, // s - {0x04, 0x3F, 0x44, 0x40, 0x20}, // t - {0x3C, 0x40, 0x40, 0x20, 0x7C}, // u - {0x1C, 0x20, 0x40, 0x20, 0x1C}, // v - {0x3C, 0x40, 0x30, 0x40, 0x3C}, // w - {0x44, 0x28, 0x10, 0x28, 0x44}, // x - {0x0C, 0x50, 0x50, 0x50, 0x3C}, // y - {0x44, 0x64, 0x54, 0x4C, 0x44}, // z - {0x00, 0x08, 0x36, 0x41, 0x00}, // { - {0x00, 0x00, 0x7F, 0x00, 0x00}, // | - {0x00, 0x41, 0x36, 0x08, 0x00}, // } - {0x08, 0x08, 0x2A, 0x1C, 0x08}, // -> - {0x08, 0x1C, 0x2A, 0x08, 0x08} // <- -}; \ No newline at end of file diff --git a/font.h b/font.h index b6373d1..fc4c8a8 100644 --- a/font.h +++ b/font.h @@ -23,9 +23,7 @@ extern const uint8_t gFontBig[95][15]; extern const uint8_t gFontBigDigits[11][26]; extern const uint8_t gFontSmallDigits[11][7]; - -extern const uint8_t gFont5x8[95][5]; -extern const uint8_t gFont5x7[96][5]; +extern const uint8_t gFontSmall[95][7]; #endif diff --git a/ui/helper.c b/ui/helper.c index 7500f12..8510eef 100644 --- a/ui/helper.c +++ b/ui/helper.c @@ -90,52 +90,18 @@ void UI_PrintStringSmall(const char *pString, uint8_t Start, uint8_t End, uint8_ if (End > Start) Start += (((End - Start) - (Length * 8)) + 1) / 2; - #if 1 - { // 5x7 font - const unsigned int char_width = ARRAY_SIZE(gFont5x7[0]); - const unsigned int char_spacing = char_width + 1; - uint8_t *pFb = gFrameBuffer[Line] + Start; - for (i = 0; i < Length; i++) - { - if (pString[i] >= 32) - { - const unsigned int Index = ((unsigned int)pString[i] - 32); - if (Index < ARRAY_SIZE(gFont5x7)) - memcpy(pFb + (i * char_spacing), &gFont5x7[Index], char_width); - } - } - } - #elif 1 - { // 5x8 font - this one - const unsigned int char_width = ARRAY_SIZE(gFont5x8[0]); - const unsigned int char_spacing = char_width + 1; - uint8_t *pFb = gFrameBuffer[Line] + Start; - for (i = 0; i < Length; i++) - { - if (pString[i] >= 32) - { - const unsigned int Index = (unsigned int)pString[i] - 32; - if (Index < ARRAY_SIZE(gFont5x8)) - memcpy(pFb + (i * char_spacing), &gFont5x8[Index], char_width); - } - } - } - #else + const unsigned int char_width = ARRAY_SIZE(gFontSmall[0]); + const unsigned int char_spacing = char_width + 0; + uint8_t *pFb = gFrameBuffer[Line] + Start; + for (i = 0; i < Length; i++) { - const unsigned int char_width = ARRAY_SIZE(gFont6x8[0]); - const unsigned int char_spacing = char_width + 1; - uint8_t *pFb = gFrameBuffer[Line] + Start; - for (i = 0; i < Length; i++) + if (pString[i] >= 32) { - if (pString[i] >= 32) - { - const unsigned int Index = (unsigned int)pString[i] - 32; - if (Index < ARRAY_SIZE(gFont6x8)) - memcpy(pFb + (i * char_spacing), &gFont6x8[Index], char_width); - } + const unsigned int Index = (unsigned int)pString[i] - 32; + if (Index < ARRAY_SIZE(gFontSmall)) + memcpy(pFb + (i * char_spacing), &gFontSmall[Index], char_width); } } - #endif } void UI_DisplayFrequency(const char *pDigits, uint8_t X, uint8_t Y, bool bDisplayLeadingZero, bool bFlag) diff --git a/ui/main.c b/ui/main.c index bd03d52..245a8b1 100644 --- a/ui/main.c +++ b/ui/main.c @@ -331,13 +331,8 @@ void UI_DisplayMain(void) } // show the channel frequency below the channel number/name - #if 1 - NUMBER_ToDigits(frequency_Hz, String); // 8 digits - UI_DisplayFrequencySmall(String, 31 + 8, Line + 1, false); - #else - sprintf(String, "%03u.%05u", frequency_Hz / 100000, frequency_Hz % 100000); - UI_PrintStringSmall(String, 31 + 8, 0, Line + 1); - #endif + sprintf(String, "%03u.%05u", frequency_Hz / 100000, frequency_Hz % 100000); + UI_PrintStringSmall(String, 31 + 8, 0, Line + 1); break; #endif