From fe94fd08291ff57e3b2598211343bc51150c721c Mon Sep 17 00:00:00 2001 From: pe1nnz Date: Wed, 20 Mar 2013 11:07:10 +0000 Subject: [PATCH] Several fixes --- README | 2 +- wspr | Bin 17656 -> 17688 bytes wspr.c | 16 ++++++++-------- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README b/README index 5c2f396..35a3e22 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -Raspberry Pi bareback LF/MF/HF WSPR transmitter +Raspberry Pi bareback LF/MF/HF/VHF WSPR transmitter Makes a very simple WSPR beacon from your RasberryPi by connecting GPIO port to Antanna (and LPF), operates on LF, MF, HF and VHF bands from diff --git a/wspr b/wspr index 253436368d71ea707b7276a0cccb64634c58e05e..42fd3d2cfa0e2be34cf3e2584880f1490371e3bb 100755 GIT binary patch delta 3442 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 P$TA;5eW>48W6=E%s4Iw1 delta 3431 zcmZu!e{9p&5x*DPO&r_7Kax1XA$ID7kTt;$HX*_Z4kD(sha!b$9 zr^EfKMA!Y&Ttx*Kez!(Zp@Zn2@Die!@EoFP;WLRI3eUs5urJIf(h9c{r@3Ql><-aBx zzLC9D<^So8(cF*vMwdT0AEi{knTz!c^yYVQ!Y7D^_&a*1+QvV_Z#%!Ge@flvEBec- zg^9pze+ zL;aaom^z9Ne;uFDLLr;TUf4UT_4baEi=#1)m~1M{Tk;%gge`f#;;pdUTl>G3I}?^| zunZQr!lvZ^*ccNw)4XMd19N_vx2(n|v!xu!Tz4mAIc7(6cP;;2L(fP48IR{;?invu z>_ngsu7qQ7ZV%eg%{Z`@nmgK|1EV?DR*aTYC~D&SGb)SMAs}Lv*2b_F(cqYsYt8mG z)xJ zA2a(bp|zn&UB_!v*&TIghRI_bG5geEF0ce@TN5LnkKnVJS^gw^^g5z0Ybbh1b18f| zI2cjhm&4deM0Ro*GZ*o0i+ffKXQ@Rr#9C7et@o9%*X2m0&JDg~37A?tLX+7YuO`-f zf%R6OsU<_QgrBiG3xXn9=AQ~AG<#q>f2xkVtaeq$N35P%ADBbYo3oci?zyf;;BDl3 z#j;2Mdyq5xAxEq>HNX$7?gojC#N_+&_-EuD95Z?i(O#l|wBh8BVvct)rXMz1XHLy*3`X3d%pz$L6-3cB&>UfZ`rmgwS%842&m(HpdhFY@znx{+Q)YaoazNYf~~0U$Q&Cztz7-+Z$$s#W`3gRqb#t$6dhKVxoW0|`-_Xz$9%fD1M#n#`GOi4?wV;= zYAqjeRO&SUj!#q%Uvj*ir9Xx7ooIW8e^B~It(wOb?rt^2zj7~7e!k^)s%n1Z-fy}& z9iK3ImyJr|8u>`MM}5jy$^&YGRfWxR1==1sb{V`A{1R7GEGY;B)t7~$b1*KQTFhM) zPPLzpRru5{{-naW;w-GrBY=J2>wFFb4i^9dC@WorOlL4mx^OH%N2~f0xWh5|VaFF! z>vM;u?2gc6&sXt@pF(~Bw^kW9&VF%L{cqtC+DYN3i1wllpq)TF$>(N2rD{1kd#!36 zUR)W{sZ|`Q_7yiE4NxKyB@3m7aNEmmNMWw2c^Y@d_L>eg&i8A24I2@S6!GBP{9&GZ zMuXdR={%=SCTZXw&2#IT(QD>I=p_mzpF{5k*1y3K^b)lZJv+O6MqL<{FwC_+x9&E2 zw-fSq$P*QkcS9aVfeZ6*(A$8;H}EGux4s>{_PMA<{K)6VeP8CU)cqdV!}qIf{F2|S z#(0arvUbFex@90j`Jwe_;uuO8q1+Hs`@b|DL|2M9pQ&qmYJBe?j7@kcLnmLE@{BhES(L;<1p1P$og*vyg^RMv0yzaa~A5 z_5_y$NMh7iP&;p`dsbcJ3w2KJT$r0}PCP(1@Fb)S+_=E0n)rJQoR;)Lcu^!QHu8Z5 z!7@2SnNK11!qeNsH9@Nd^CYa&P7s`U4bn7Lz%r_xSJXREX1nTx-Q)WqNKjtlsACye zY}@)$YD(%iW?<2u%)k<=p$weR;|fbsa=ct=X$*Zg8F9a*1u}u$cWEpWwD31r^w%@6 z=s$k*as6}#7X8J6$Mqu_SYdry{)@*A)@5Ls;O_Cq^|1^r`u<-&u0NWAMc;!LQIe7; za4HiwLo<{ikO4WVoTb!}%X=wF$qDi^u-N;#YoW6{oymkuJ`HIaD`2roCln!}-p|02 zU>^d1lS($a0i3=zP+ceroX&K-{Ada|om7%!O5xod=2?NDMK&v8vSRaO1iTRx;<=K&G1>(+@zpccsD~ zlcd!+N@NWGP1@(8c!i--4wUc~Yde`31y%!=@&K F?mt=rgDL<3 diff --git a/wspr.c b/wspr.c index 7d6cf31..a5487f2 100644 --- a/wspr.c +++ b/wspr.c @@ -1,6 +1,6 @@ /* - Raspberry Pi bareback LF/MF/HF WSPR transmitter + Raspberry Pi bareback LF/MF/HF/VHF WSPR transmitter Makes a very simple WSPR beacon from your RasberryPi by connecting GPIO port to Antanna (and LPF), operates on LF, MF, HF and VHF bands from @@ -123,8 +123,8 @@ char *spi0_mem, *spi0_map; // I/O access -volatile unsigned *gpio; -volatile unsigned *allof7e; +volatile unsigned *gpio = NULL; +volatile unsigned *allof7e = NULL; // GPIO setup macros. Always use INP_GPIO(x) before using OUT_GPIO(x) or SET_GPIO_ALT(x,y) #define INP_GPIO(g) *(gpio+((g)/10)) &= ~(7<<(((g)%10)*3)) @@ -219,8 +219,8 @@ double fracs[1024]; void txon() { - - allof7e = (unsigned *)mmap( + if(allof7e == NULL){ + allof7e = (unsigned *)mmap( NULL, 0x01000000, //len PROT_READ|PROT_WRITE, @@ -228,8 +228,8 @@ void txon() mem_fd, 0x20000000 //base ); - - if ((int)allof7e==-1) exit(-1); + if ((int)allof7e==-1) exit(-1); + } SETBIT(GPFSEL0 , 14); CLRBIT(GPFSEL0 , 13); @@ -254,7 +254,7 @@ void txSym(int sym, float tsym) { int bufPtr=0; short data; - int iter = 1400; + int iter = 4000;//1400; int clocksPerIter = (int)(CAL_PWM_CLK*tsym/(float)iter); //printf("tsym=%f iter=%u clocksPerIter=%u tsymerr=%f\n", tsym, iter, clocksPerIter, tsym - ((float)clocksPerIter*(float)iter)/CAL_PWM_CLK ); int i = sym*3 + 511;