From 12524175d7547f8eff3c04bc3ae5dfee4ed9f37f Mon Sep 17 00:00:00 2001 From: wagiminator Date: Sun, 19 Nov 2023 09:07:53 +0100 Subject: [PATCH] More precise delays (issue #4) --- picoAVR_Programmer/software/picoavr.bin | Bin 3544 -> 3574 bytes picoAVR_Programmer/software/src/delay.c | 32 +++++++++--------- picoAVR_Programmer/software/src/delay.h | 3 +- .../software/picoasp/picoasp.bin | Bin 4601 -> 4592 bytes .../software/picoasp/src/delay.c | 27 +++++++-------- .../software/picoasp/src/delay.h | 3 +- .../software/picoisp/picoisp.bin | Bin 2392 -> 2383 bytes .../software/picoisp/src/delay.c | 27 +++++++-------- .../software/picoisp/src/delay.h | 3 +- .../software/picostk/picostk.bin | Bin 3871 -> 3862 bytes .../software/picostk/src/delay.c | 27 +++++++-------- .../software/picostk/src/delay.h | 3 +- 12 files changed, 63 insertions(+), 62 deletions(-) diff --git a/picoAVR_Programmer/software/picoavr.bin b/picoAVR_Programmer/software/picoavr.bin index 88d2c1e7073d81469ceb67ddfba6cdd118478d17..f7c775858c6128b1913cced9e6e824cd3634dde5 100644 GIT binary patch delta 2256 zcmah~U2q%K6~6bbb|qP|R#`j2sS`_C6yp%%Xi8d2GM=b0KOvMPRB{T_Y3ojAI&EH> zA-bhMSbMXgGi|Y?#cNu?CQR_qnS|JxIQR`q8HuM1(;8!(IJM~xXvsiqX&G3iiS^UF z>%`E9whw#1bI(2J==|$S>zA#{W2ljR{@_#af(qg0=l>Z*$W5uR1j_=mAJ+js)r(J^ z={XPaDIlPCb-C|wenL+j3*<-g=M}I~faRIF3g zCbfFhwP#gh(bk~eA^4zr6K-x@rx(K4R`f#f+Dcot4g=)67=E!ucT)@MBHZkas)6WW zAgY$5gJpF;3hesCyfHc^k0-+`)j!G4B?k=shT#3%=o$HqBza#{;KN#NRI5{r!!Dz^ zXVlOe!`HY{SFNnRj=H681;#W}7GHxG#2{=|;9;$<^?5UwqjQxRNUudhJSPWX)q1Hp zjD8T0bk&O8)l#UOzXR;z+SEHFv^xt(Gs#;h-u9=qjZdk z&V8PdMFDjQUih&3Ge!(V|5A(oxh5tWB#$s1xveo0*dT%$D z9U@*2@CJbI0JsGz0AYjn1ATyBe{iflsKbtX+~dA;e4#YtDyx5Yw8E#=&)AL98@{vr z^};JFORrX*^9}H6SyX`IcD74KdDNgbZrvZT@9~C7KZ_e9gu#s$*Gvw92$yh4fH*7` zHG}0kH3ev!IQwYS!6&kyR{>C~=Yojzg@Serh)Ene_i)&9VOx>*Dyr z5iXKm5b+|w3rIwseR^|HV~}&Z6(k}JajylG5n8kNpMgrCP(Dd}hP#oGaS~8R4;UAn z7dZhvJdi%~xM=w!4x-tM#@Y9ZeUBCav9~^&V$smuoCna#!H^!$?hFL1STv;Bj4){{M z?t75$L&T8)wAbvg$ZA->Usw?1!COIGR(WTaBt`mR0%YV=GHnRnPb#DIs9HzOI_ibx zp=V1&Oqs^X;#7rn7vg(I;`}Sclf_pp4j|hH)~7b4@5r<$&k}636$S4v&dOuSaii{i z3&6(ZLeo1?P>71T^_gF<52*k z)v}P5KZ_9Iv&>VZ84GUQ)F=t$$)97P)gpgLer!)h=w@VZsY`J!9w!aNPd1QEL?j(p z_!Si*U0C?7h3!}vw6F~eZ(6tk3)2?*u%KDUQNHSTua`QlStu;O;48hrA9AF8X@1N% z&eNK>N>=0byApK5ELO_e)~+p<_}U1cv`4tSRWOC(x0=i*8ocdd+J|{yUx2>OxMdJh zgH~EPC3s8DT!%PI18C~*hJYj%)mm7$CF+)#b=b*`a)Ex3MGsAZ9(z}08AMvLClCo` zWki~@$-Cljt=5uiMCXpvlQQf=uab8CDQTNrvl|N>+hL`?nxM5rn!3Ni|9^d8rvM^| z{Q7HpmEVEA-1WU|>9J!!QUJSZ&Y|6AXBk^3m_1=*XI8fH8`?QfQX~cssMGq&9kXet%z_oAf{aU-m}Y zDqfnEzAE18{w=K)Z*`2V?WBJcBX!+(&{P#qi`1dd$N2i#e3T6*z!b3mOj@S=HabuLeJ4@D;j!Kir1jJz+1N PrOdJ|`kM>g-eLG}u6LM? delta 2269 zcmah}Z){W76~FI3KR-Km{LFKbCJ>TfB^7NU@djPhb#1MbYNg1Km89C#6+CVGSQQQ5 z57QvNeTG%qi2cY5(2bN1!lyFg0rH1w#g1%gABxmPX&QznE~CWY8<>)s@S?YDEE z`4jEKX8GQ8?z!ilcmDj&`S*s;H>fe}zkPhqPq-P4<2D}uq7QS|fr}(@Q0C*rM&#@m zIs4&DmpF13$@oh{iN9XFY)l;JElw9Nsi;fF!G%i;(<+L{+^Wn+WWGhl6*|<^9RNvI zDNbkfbMup@GruaL2&#kboCws0n6BPYY8(n6|;l-r1b$lrR%ZKNIN zpV(H2V#;ITP1430!Tx`Y0RKH;d?`x-5=vRA^1-&w?(Xis*yztM$QR`9x3quq&xnvh zCuv(;1KVOmafL}cA{~f4hDax;B1}v`30!b%FI*2Vv?H#qV#x?hc??PWldyq%S6ddk zl18BPz7;T}4=gFIgjM9y>&mbQOc9nx%l%%(>f)CNwlVDM&M;B?n;XkLq;J+ z%3?fv^JX~FmlK_k#Dey;IG8*f9p{pW9VBjjzpiiAKOaZ&n0GXHT_!MU^|;`4fZUihhq*Bf~b z@R7%uN_qaLw2jEiB;-%ZH2F4>>x_Ma{+MC4(Z3qqSs5HuJ=YFm&n@gRuxAB(EbOUc zuR!GQl29uhB=YweeVoV%Mtg{SlF<$#UuHBw8Or1l;dQnf#L*C$f@+kW_6oyq^D|$o! z#|KO?J@h~y$^=Lmb}tVLmDqtFs7Po6$n{X1=Y^{X(@ptz96FR&9NL{v4P8ZBz}dpS z9lW(f_W+yRx5IBOZKpfHb4R>Lp9RMqc7YBiZTcjv$6>K)2na@;lVJ=Kc)f4?o);4C zTyXcA@;w?jX;!@dYW2#);-#HomY`!_+N`|8q9F~tGum%_op1RQ(%20<5gEJDh)a1G z03&%Ayj}UoD>Pbwz=Q(-0u^NU0DVRltMu#D{#tZvb!bTSl@DT{iG3FKtzw@o3s-5o zEdG%OW${z$lSQ4n3y7CJn~OIhpGz=BW&Zct*ZkdnatDzWHdbZ+)Ri~= 14000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 16000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 18000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 20000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 22000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 24000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 26000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 28000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 30000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 32000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #endif - n--; + --n; } } @@ -64,7 +63,8 @@ void DLY_us(uint16_t n) { // delay in us // =================================================================================== void DLY_ms(uint16_t n) { // delay in ms while(n) { - DLY_us(1000); - n--; + while(!(TKEY_CTRL & bTKC_IF)); + while(TKEY_CTRL & bTKC_IF); + --n; } } diff --git a/picoAVR_Programmer/software/src/delay.h b/picoAVR_Programmer/software/src/delay.h index fee0087..9e2b51f 100755 --- a/picoAVR_Programmer/software/src/delay.h +++ b/picoAVR_Programmer/software/src/delay.h @@ -1,9 +1,10 @@ // =================================================================================== -// Delay Functions for CH551, CH552 and CH554 +// Delay Functions for CH551, CH552 and CH554 * v1.1 * // =================================================================================== #pragma once #include +#include "ch554.h" void DLY_us(uint16_t n); // delay in units of us void DLY_ms(uint16_t n); // delay in units of ms diff --git a/picoISP_Programmer/software/picoasp/picoasp.bin b/picoISP_Programmer/software/picoasp/picoasp.bin index 4b653c09e63cd632a17e488b2c2af5c078569a16..2b8389fc3e7926dcc34540408c81d3308f758798 100644 GIT binary patch delta 1571 zcma)5YiJx*6rOu$W@mS1XJ>aduWm@P?ryWm_O)$OP_YtPXwlX*n1ZHg4I04++E8cG zAKL6NOa4eUkKR&$8SDf5Cl3*}AWE}&5gH<_6||znXg96UWH*WnYE8#`?<_VVg6wj> zbMHCdch5QZ&hO#%@K6ibJ$&p*@c!^XQ`HUQ!MHh*%pdEJ`HSRNd))$cMq&8&%bv+VKT?rXs#MH6phfwy7x!C02d@>xe#Sex-L`WO5EzfSXJom#5X4^!;D8UKQR z;a!uS4Pt!~QA8^HD0m7TVGjvG-8@=4{69%{tLO`MHzu*%fx|IU;h;%+!d$W#cvvVI zqHbn31^=Dd=b>fvbEnEvS)ov7b^j8=9F>ogv-mjj@{cD{MEI<;Fypr_eSHqt6I8iW zX+UKg-MM_kItTF9P1`^&m0)@^H)$@(!~(5wsgUok=nYH*TrJsKD$;a(QmB`z|1+O$ z6O5&w2A9zdUbbt^x?vCEH981Bo^=eEm`OV9 z!q%Q3R3M+9^~dMl^v&=QJll=ZNMa=#n&%Vpx+XZr9ut4{9>S zr!^17=QV}mtD2YMvi2fD5&whJP-VU)cZKVt06rcwhZwlFuA3mFyPz%#%n*aWp#5k; zcoV+3w1hghi55)yHA1dnIOCZ>4SK?z;8}*YpP8knb7_ zidCQqrCgP$RV?F03rf$RF0m1-Bax_I7f({w0aw#XD7ef*?**Ejkjeu&D8H0o&N4G= zBh4&yf2x6WIW(}h4~ept~LYAT@%kNODKP8MN2k0NT+D?n9w7_^E8w>lvep zugayX-29gG7J(0>1CXzlQv#F_nsx67ui&B|L1DQCTtKJgU0@Dfl4E=BOqfuaUkOKk zZDpY{g&iqbG%psx{piMIPb{|l+!9Do1- delta 1590 zcma)5ZA@EL7{2G+kG8iTx7>D&Kn7h~C}qyERFkm?A!yJjZbatP84V-;fW%EQ@68ew zdUG3oNPxl4f^#wMBkE!TEr0kmSu5;^sTxtO%!S>?pMJ{)7%amWug9`2T$oC!K zKB@;tussWoY>%jVn+&jJu#M{&Qv&vo4eoxT5bd+-CIf=Vm_8nhujW&hl#t?6oD9PT zH^8>BVDTDz=>D4GdoHKrFcvUi*^?22Gk8NVEK4(<>z?Za|6ix^VV!cSGXMwK#Tif9 zlkV4PZ4l|R6GdcW_kkBs6WeSFt9nbJ_F|_JX2QATFtpVu z*`}(e9=iNDv(H7_h;eUi8#OE|-hB5jew-uob)*(whb;X5=qM5Hv98Q`@|V6n4a^P7 z+-PAz-u3Rxaxi}y;Lx0DAU7IidQ)?hOPE-o70$0LcNh1TP6OO6iOuII9ar-AQuTlG z**1$dfA`da>ynX)Y;4}4S$=ybRh<8s1c?;hfxqBWNg6Qc@1*ndb%rpcT>Gk4{p67-F*E4o_&IsasUg_a8nr1-hQQoO2glL1Zv z8p!0^@%^mAPX?g&t|I&$-oRn&WyM12vx=17*9eLZD2At@%w)*p;EpMPE93ew1D94+9r#rnR7GZ(!T*?M^rhuE z{zcYWYrsDAs`ZD!4a(;^6QT){wnEcz!a`0b`#NfC!R)xL!?pQ9Cd3)^ZbU1yE zO<$fi49O))lFLOt(lEm>tWN=`iBk}2(iD4A^Qxf+yoIQ&9aBTCsLU0PcHy)3s2Vy( zuu2WRPq17KeL%2S4J8P=)X*J*f*J1%>3!9)49aUTnos6&Q-fpPINS;QfNZ&-GFU zt=DF0VxD9ZgMN2a*iF|w`y`*ZMMTd^6QCEZNv~l0qWit-cC9qYK#flVS>t7KuV$B> fCp00+u(I>)^mny4CG{4Rg+=th9R{~hpy= 14000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 16000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 18000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 20000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 22000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 24000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 26000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 28000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 30000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 32000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #endif - n--; + --n; } } diff --git a/picoISP_Programmer/software/picoasp/src/delay.h b/picoISP_Programmer/software/picoasp/src/delay.h index 7b7541e..0c402fa 100755 --- a/picoISP_Programmer/software/picoasp/src/delay.h +++ b/picoISP_Programmer/software/picoasp/src/delay.h @@ -1,8 +1,9 @@ // =================================================================================== -// Delay Functions for CH551, CH552 and CH554 +// Delay Functions for CH551, CH552 and CH554 * v1.1 * // =================================================================================== #pragma once #include +#include "ch554.h" void DLY_us(uint16_t n); // delay in units of us diff --git a/picoISP_Programmer/software/picoisp/picoisp.bin b/picoISP_Programmer/software/picoisp/picoisp.bin index 1e0445ea92d997e214eeca2a30eb48d0592ca1fd..886afb2d637ed0b814a6ee0eb5f83bc1cad0aab2 100644 GIT binary patch delta 625 zcmY*VO=uHA7@e8@n`E;a8P}Qy+oqxTUyKkvc+ea?1T4l<5QQQ|Ja`d>b_xM$rW@-; z0tsLB(376k#*4+1k$My~>ZKJeg(er%+7!%5(secwiVVE>zMuJKzPG|YvEpU?v6M;T zpQQ)M$Rn}4=$7-pG82~e%s>5aJv<<`ORGbem3EJx*eSb2aq5Ag-&Yi(*ixAJmMdvr zzLl>{HpBKEd+n;-&>aWHaNPXDZJJ}^2DfS;u#+oH3My>jh^UBht1YYIFt;$b1EQZ> zy*~GF>y*znw=VdscjGzBowM^b@C3L}a~PFnI`d0#pw+UzjgL?>Fc1 z);#jR>E!UgKCKm$3L+%tG-}XJ)H_wrZ}9;}$bi|E-FTYBf_shdl)S>9VN|&;@wsyU z=noOCAR@F1WXd)SWrjtW7w3* zD)eYK@djkI)WIru$CxS+NnCU#ztg3Hs&@Y51gBWKyd&2!#`j#`-*G*4F`Z72+?`%n z8eAGoKZJ97AHE0I^!S+>IV8>_i1#9C6H_<1tHyo9TCSX2c8dsYH@S=d>w&U<2_Jz! zdKP~JZX`N-7`_@TI$Ni)b%oH%RPc3xh~QMnCz*Hyv&JDUB~<}p^nko_mY$Y--KN7h M3{PlM>JPN=7tnpsQ2+n{ delta 674 zcmYLGO=uHA7@e8@$tLM0vPzOBZW2QfjRsQ4p{JUINd1kW_Ta^e(1T#1(2OW38FwuO zA$G%rdQzx@CvClWYu#E83L;7`HtHeJq`f3sF)OIVI2)B*-h1CSk2l}U_f}a~j8pJ^ zDVv7hN;lJc%H;Qgwy1y3p7+(~d27B0;b$EfA)BRlaTqFDi32|uHN>fPXS{WqL!6%p zw{B^ScIcK~oB9#(U-oZ}`CDF9rN>~b@DY2Yff9t+K&Iq3^tPnoSPyN z@sM34NTOI4vBydFV%cSL7|Su6eOMl}*@NX_o5jENw5&~g^cw9DROpx;HjIj;48v}I z(T)26E8+$Kb=USI_v5}7jWTSOfjzcbfd7n^iwWvQ(VGDQCBa5-a${`2Rh81Wq6;vwr`UJO@N4CLWKy5 zV}iI9=`|5ez$u`$T1l;Y@h7AR-{}#4Kir~|yvolg{5UP~Ie3q5ux5qI!Ufo%lS0N{ z!P*_D;umZ#_G^>p6Ndm&=V_DLgO}W+FFB2SgQK zrCBi+o?#&|900fThl022 zQnbn;=~dqK)QN~I-)9qRJg0BO-JuLqb6?`X(rRg7=~V;xw^tl&Xdy+D(g2Gdlaeq% Li&C2DRjK#~Ca3I5 diff --git a/picoISP_Programmer/software/picoisp/src/delay.c b/picoISP_Programmer/software/picoisp/src/delay.c index 9fde84a..9d2fe51 100755 --- a/picoISP_Programmer/software/picoisp/src/delay.c +++ b/picoISP_Programmer/software/picoisp/src/delay.c @@ -1,9 +1,8 @@ // =================================================================================== -// Delay Functions for CH551, CH552 and CH554 +// Delay Functions for CH551, CH552 and CH554 * v1.1 * // =================================================================================== #include "delay.h" -#include "ch554.h" // =================================================================================== // Delay in Units of us @@ -22,39 +21,39 @@ void DLY_us(uint16_t n) { // delay in us #endif while(n) { // total = 12~13 Fsys cycles, 1uS @Fsys=12MHz - SAFE_MOD++; // 2 Fsys cycles, for higher Fsys, add operation here + __asm__("inc _SAFE_MOD"); // 2 Fsys cycles, for higher Fsys, add operation here #ifdef F_CPU #if F_CPU >= 14000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 16000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 18000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 20000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 22000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 24000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 26000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 28000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 30000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 32000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #endif - n--; + --n; } } diff --git a/picoISP_Programmer/software/picoisp/src/delay.h b/picoISP_Programmer/software/picoisp/src/delay.h index 7b7541e..0c402fa 100755 --- a/picoISP_Programmer/software/picoisp/src/delay.h +++ b/picoISP_Programmer/software/picoisp/src/delay.h @@ -1,8 +1,9 @@ // =================================================================================== -// Delay Functions for CH551, CH552 and CH554 +// Delay Functions for CH551, CH552 and CH554 * v1.1 * // =================================================================================== #pragma once #include +#include "ch554.h" void DLY_us(uint16_t n); // delay in units of us diff --git a/picoISP_Programmer/software/picostk/picostk.bin b/picoISP_Programmer/software/picostk/picostk.bin index afd465ec4624c134c662ad58aff468425789f0f6..27034f926c8f993aa55832c3058697b4352193e9 100644 GIT binary patch delta 1706 zcmbtUUuauZ7{BM-dvkB@P15wVO`O%X#>}mAf2vlybt>I(n=oD5B~^UTbs)|MQK37i z8=Aw(@}m8d^=!U~4nZht+Xzk>toFuMm`spRChF+Jz~({Qu0f1Uwzhuf-d5_=CrS8y z-}%1peE-iqQ}=dV_5kWS+5Q~rJ^6X_wkl$Dvg@Nfm%iHG9n{~Kzq;{dRL>S-2~nRI ztWSuA#Na}VARjhg6*2TUS|?scZP6s<34#C>z)=n~?*mR;Ko6$u4|xF>)Ph#f3%-K! zCVwmab15*UTnw@c;3=80xJ28<0LLgv{C18z4FSrli8(}h7@I>=i1HesIi5E_KgtWn zctZ_Xz|kBk7z6xYOdW=q;J9Ypqm(0z0f~zV7ZpJ93BG-o8x1o*L;xpKDCPww=tz;D zMam%V@Oeo<-IP~)Ho#BdSXR*p`c8z@+PkCRuE@Vqlh@*HWu6IHnV_Ai2w)tQ9UZXx zZ5mK0e~jR$NUA3`cMkKBwCu<+<+w8W%X_nD+ElE4kTH42pUxY3UtZ5^c{PuT+9@<` zqt)uE*c4O-1mc7J8GV|#1XI8Z;zt=t~l}88e*mSHhf#E{`JMJD7^DaSj{vO^|&JgNUUn-5pp{ zkC**%Wp3-z>_dwyMGo`4_P=UKX+;0_<|2F>*A@{*G3X*hkqdiMhah=sDb!Znxi`Vw zS0(5l68txbyYa-Ia=oh9>~fkgJK)@dS-Z0fvzMIRnDsb&RBZg}bO0_nonWOoU4S9y z3BavRH{gBFVZeu-X94#*M*;Uc6tDxEhX~$`P5M{nAf?{gXG2fX5+mj%n&M%|*s~(I z2bio0GIg_ooL+B(&p3_bt6V_=SQ(D|-%$=YE9PbW9e=EziNH)&2xRx_I8&u;oyWu$DdfWE-Em`aL9%ix-t7f-CF_CdFVRzBUgrs#ea#_*{jg%w}(TGB$6;PUc&O~@7 znw}BM45yZzWyr=D&|X(2=T4LP(^VZ>FX^iqCgN$k7VQ+T+4c7tZs0ybs}!)!qF}M6 zG)zXSCg)C}`BRFl$4DVpRdJ+5sOVlSGg=LB#0%u@irrIsR#I@V_j2^ z;PTX}&NKMWo38{eLp}$C`*84@cqh2M#bJ%as$+3S!OU`y1RP}+3Es)V#L}2etT6LA bib|}mi65JOsG!rB_&bFaYDCSVIW+qx5C9*% delta 1658 zcma)5U1(fI6uvWe_wN1KpPR{M*OYd5SyE%v)F_rzY@s%lP_!m>Tg6~v6tzV`3duaR zWT&(4Ta#=vH6RMo7ky}x4MasS=5A8KXh4=A_(PQiv-;4q-3KoyF|Oy{%|=ZXgyB1L z=A1e6ou8SEy%Wnlfd(%0yo}zs@Zp2|b`oD7Tc76n%*~#`Ncob-zVsKw=Bp^qeoCf9 zJT(zdiCd|OTSG)giE%OljM@^2a-4ekCgeR^6_6=4%$2$)UyF2 z8}ehEa0)%Hj~P_;OO!tjuHrHIb<`({a#Lg~tMaUtDfkLX!CUYY+N zf)~nqh1V{ek=FM7as9x?m^|vay86~Idb<~jv6*O%!D}i0|Y<~0B+@qQkka#}I^Kqxw>Ws*HW5D%GZ?bU#)U0Y|wFYP)@j9xI zl_y_K{4Jt?PFfDIC1_AG-QW((Z3))X+seA&`QOAvL5Zfn-cDD!e~WI>XPGDoLjxh5 zG2T`KU`lm~8WMH7+yPy#pP<`L@IOx6f8YjHtb~l!0r9M_IlXT6!ro^c0}NOv0HfAZ zfSuML;C}0Qz;5eBz#eND@VG?*pTX)Wg7;!|WQ!%7j@0Hn7kq(M7*W568UneR6TxR; zlas`IG~v3a@DVrJ~j>d@L3dYAs@lK$?3X^L4rX}m(C!8Bn5G;&sy^zhN@5K~!@ zh1m|EANdTd>`oe4c4Ul3espAnMt*Z-kVZ5b4M8%lo{jKqG_xwI45zDB6`nW6BgP(d zSe!QE512U=Ds7As+9-h`hXUoM$`vxzcy;X}x^Yo**qUkNnnESJ$+^5>B*GAHqoeE^ ztB!{Q!ZzA=nyIgbU_U%}V&yQlSL(K!!++j<&Ho+nITGl`K_n&u`#P6c8_`=?izQ*E tTgU+%WjYDm%S@sNm_hVrrdX0p^nt~1JH83gYnW(#0tMU90dY_8`k%T35s?4@ diff --git a/picoISP_Programmer/software/picostk/src/delay.c b/picoISP_Programmer/software/picostk/src/delay.c index 9fde84a..9d2fe51 100755 --- a/picoISP_Programmer/software/picostk/src/delay.c +++ b/picoISP_Programmer/software/picostk/src/delay.c @@ -1,9 +1,8 @@ // =================================================================================== -// Delay Functions for CH551, CH552 and CH554 +// Delay Functions for CH551, CH552 and CH554 * v1.1 * // =================================================================================== #include "delay.h" -#include "ch554.h" // =================================================================================== // Delay in Units of us @@ -22,39 +21,39 @@ void DLY_us(uint16_t n) { // delay in us #endif while(n) { // total = 12~13 Fsys cycles, 1uS @Fsys=12MHz - SAFE_MOD++; // 2 Fsys cycles, for higher Fsys, add operation here + __asm__("inc _SAFE_MOD"); // 2 Fsys cycles, for higher Fsys, add operation here #ifdef F_CPU #if F_CPU >= 14000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 16000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 18000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 20000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 22000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 24000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 26000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 28000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 30000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #if F_CPU >= 32000000 - SAFE_MOD++; + __asm__("inc _SAFE_MOD"); #endif #endif - n--; + --n; } } diff --git a/picoISP_Programmer/software/picostk/src/delay.h b/picoISP_Programmer/software/picostk/src/delay.h index 7b7541e..0c402fa 100755 --- a/picoISP_Programmer/software/picostk/src/delay.h +++ b/picoISP_Programmer/software/picostk/src/delay.h @@ -1,8 +1,9 @@ // =================================================================================== -// Delay Functions for CH551, CH552 and CH554 +// Delay Functions for CH551, CH552 and CH554 * v1.1 * // =================================================================================== #pragma once #include +#include "ch554.h" void DLY_us(uint16_t n); // delay in units of us