Add calibration tab for pizero,pi2,pi3
This commit is contained in:
parent
0ddd7c521c
commit
f9022c0ed8
7 changed files with 720 additions and 22 deletions
|
@ -5,7 +5,7 @@ CFLAGS = -Wall -g -O2 -Wno-unused-variable
|
|||
LDFLAGS = -lm -lrt -lpthread
|
||||
|
||||
|
||||
../rpitx: RpiGpio.c RpiTx.c mailbox.c RpiDma.c raspberry_pi_revision.c
|
||||
../rpitx: RpiGpio.c RpiTx.c mailbox.c RpiDma.c raspberry_pi_revision.c calibrationpi2.h calibrationpizero.h calibrationpi3.h
|
||||
$(CC) $(CFLAGS) -o ../rpitx RpiTx.c RpiGpio.c mailbox.c RpiDma.c raspberry_pi_revision.c $(LDFLAGS)
|
||||
|
||||
CFLAGS_Pissb = -Wall -g -O2 -Wno-unused-variable
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
#include "RpiGpio.h"
|
||||
#include "mailbox.h"
|
||||
#include "raspberry_pi_revision.h"
|
||||
|
||||
|
||||
static volatile unsigned int BCM2708_PERI_BASE;
|
||||
static uint32_t dram_phys_base;
|
||||
|
@ -67,7 +67,7 @@ int gpioSetMode(unsigned gpio, unsigned mode)
|
|||
|
||||
void DisplayInfo()
|
||||
{
|
||||
RASPBERRY_PI_INFO_T info;
|
||||
|
||||
|
||||
if (getRaspberryPiInformation(&info) > 0)
|
||||
{
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
#include <stdarg.h>
|
||||
#include <stdint.h>
|
||||
#include <ctype.h>
|
||||
#include "raspberry_pi_revision.h"
|
||||
|
||||
char InitGpio(void);
|
||||
|
||||
|
@ -26,7 +27,7 @@ volatile uint32_t *pad_gpios_reg;
|
|||
|
||||
void * map_peripheral(uint32_t base, uint32_t len);
|
||||
int gpioSetMode(unsigned gpio, unsigned mode);
|
||||
|
||||
RASPBERRY_PI_INFO_T info;
|
||||
|
||||
#define DMA_BASE (BCM2708_PERI_BASE + 0x00007000 )
|
||||
#define DMA_LEN 0xF00
|
||||
|
|
123
src/RpiTx.c
123
src/RpiTx.c
|
@ -86,6 +86,10 @@ Optimize CPU on PWMFrequency
|
|||
// DMA TIMING : depends on Pi Model : Calibration is better
|
||||
int FREQ_DELAY_TIME=0;
|
||||
float FREQ_MINI_TIMING=157;
|
||||
|
||||
float DelayStep=157;
|
||||
float DelayMini=1200;
|
||||
|
||||
int PWMF_MARGIN = 2496;//1120; //A Margin for now at 1us with PCM ->OK
|
||||
int globalppmpll=0;
|
||||
|
||||
|
@ -112,8 +116,9 @@ int Randomize=1;
|
|||
uint32_t GlobalTabPwmFrequency[50];
|
||||
|
||||
unsigned int CalibrationTab[200];
|
||||
|
||||
|
||||
#include "calibrationpi2.h"
|
||||
#include "calibrationpi3.h"
|
||||
#include "calibrationpizero.h"
|
||||
|
||||
|
||||
//End F5OEO
|
||||
|
@ -405,6 +410,7 @@ int SetupGpioClock(uint32_t SymbolRate,double TuningFrequency)
|
|||
#define ln(x) (log(x)/log(2.718281828459045235f))
|
||||
|
||||
|
||||
// Again some functions taken gracefully from F4GKR : https://github.com/f4gkr/RadiantBee
|
||||
|
||||
//Normalize to [-180,180):
|
||||
inline double constrainAngle(double x){
|
||||
|
@ -532,21 +538,22 @@ inline uint32_t FrequencyAmplitudeToRegister2(double TuneFrequency,uint32_t Ampl
|
|||
int CompensateWait=WaitNanoSecond-OverWaitNanoSecond;
|
||||
for(i=1;i<PWM_STEP_MAXI;i++)
|
||||
{
|
||||
if(CalibrationTab[i]+150>=CompensateWait)
|
||||
if(CalibrationTab[i]+DelayStep>=CompensateWait)
|
||||
{
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
OverWaitNanoSecond+=CalibrationTab[i]+150-WaitNanoSecond;
|
||||
OverWaitNanoSecond+=CalibrationTab[i]+DelayStep-WaitNanoSecond;
|
||||
//printf("step %d Overwait=%d\n",i,OverWaitNanoSecond);
|
||||
int PwmStepDMA=i; //Number step performs by DMA
|
||||
int DelayStep=CalibrationTab[i+1]-CalibrationTab[i];
|
||||
|
||||
/* int DelayStep=CalibrationTab[i+1]-CalibrationTab[i];
|
||||
int DelayMini=CalibrationTab[i]-((CalibrationTab[i+1]-CalibrationTab[i])*i);
|
||||
|
||||
DelayStep=157;
|
||||
DelayMini=2400;
|
||||
|
||||
DelayMini=1200;
|
||||
*/
|
||||
int DelayMiniStep=DelayMini/DelayStep;
|
||||
int NbStepPWM=PwmStepDMA+DelayMiniStep; // Number step we use to calculate including delay of Minimum constant due to perform Amplitude and getting the AXI bus
|
||||
double UnitFrequency=DeltaFreq/(double)NbStepPWM; // Frequency granularity resulting in PWM Frequency
|
||||
|
@ -943,8 +950,52 @@ inline uint32_t FrequencyAmplitudeToRegister(double TuneFrequency,uint32_t Ampli
|
|||
|
||||
}
|
||||
|
||||
//Get from http://stackoverflow.com/questions/5083465/fast-efficient-least-squares-fit-algorithm-in-c
|
||||
|
||||
#define REAL double
|
||||
|
||||
|
||||
inline static REAL sqr(REAL x) {
|
||||
return x*x;
|
||||
}
|
||||
|
||||
|
||||
int linreg(int n, const REAL x[], const REAL y[], REAL* m, REAL* b, REAL* r)
|
||||
{
|
||||
REAL sumx = 0.0; /* sum of x */
|
||||
REAL sumx2 = 0.0; /* sum of x**2 */
|
||||
REAL sumxy = 0.0; /* sum of x * y */
|
||||
REAL sumy = 0.0; /* sum of y */
|
||||
REAL sumy2 = 0.0; /* sum of y**2 */
|
||||
int i;
|
||||
for (i=0;i<n;i++)
|
||||
{
|
||||
sumx += x[i];
|
||||
sumx2 += sqr(x[i]);
|
||||
sumxy += x[i] * y[i];
|
||||
sumy += y[i];
|
||||
sumy2 += sqr(y[i]);
|
||||
}
|
||||
|
||||
REAL denom = (n * sumx2 - sqr(sumx));
|
||||
if (denom == 0) {
|
||||
// singular matrix. can't solve the problem.
|
||||
*m = 0;
|
||||
*b = 0;
|
||||
if (r) *r = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
*m = (n * sumxy - sumx * sumy) / denom;
|
||||
*b = (sumy * sumx2 - sumx * sumxy) / denom;
|
||||
if (r!=NULL) {
|
||||
*r = (sumxy - sumx * sumy / n) / /* compute correlation coeff */
|
||||
sqrt((sumx2 - sqr(sumx)/n) *
|
||||
(sumy2 - sqr(sumy)/n));
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int GetDMADelay(int Step)
|
||||
|
@ -1034,8 +1085,15 @@ int CalibrateSystem(int *ppm,int *BaseDelayDMA,float *StepDelayDMA)
|
|||
ntx.modes = 0; /* only read */
|
||||
status = ntp_adjtime(&ntx);
|
||||
double clockppm;
|
||||
int hFileCsv;
|
||||
hFileCsv=open("calib.csv",O_CREAT | O_WRONLY);
|
||||
|
||||
|
||||
switch(info.model)
|
||||
{
|
||||
case RPI_MODEL_B_PI_2:InitCalibrationTabPi2();break;
|
||||
case RPI_MODEL_ZERO:InitCalibrationTabPiZero();break;
|
||||
case RPI_MODEL_B_PI_3:InitCalibrationTabPi3();break;
|
||||
default:printf("Warning: No calibration for this pi model \n");InitCalibrationTabPiZero();break;
|
||||
}
|
||||
|
||||
if (status != TIME_OK)
|
||||
{
|
||||
|
@ -1057,19 +1115,50 @@ int CalibrateSystem(int *ppm,int *BaseDelayDMA,float *StepDelayDMA)
|
|||
*StepDelayDMA=(GetDMADelay(PWM_STEP_MAXI/2)-(*BaseDelayDMA))/(PWM_STEP_MAXI/2);*/
|
||||
char csvline[255];
|
||||
|
||||
#include "calibration.h"
|
||||
|
||||
/* for(i=1;i<200;i+=1)
|
||||
REAL x[PWM_STEP_MAXI];
|
||||
REAL y[PWM_STEP_MAXI];
|
||||
|
||||
/*
|
||||
int hFileCsv;
|
||||
hFileCsv=open("calib.csv",O_CREAT | O_WRONLY);
|
||||
|
||||
for(i=1;i<PWM_STEP_MAXI;i+=1)
|
||||
{
|
||||
int Delay=GetDMADelay(111);
|
||||
int Delay=GetDMADelay(i);
|
||||
printf("Step %d :%d \n",i,Delay);//,(GetDMADelay(i)-BaseDelay)/i);
|
||||
sprintf(csvline,"CalibrationTab[%d]=%d\n",i,Delay);
|
||||
sprintf(csvline,"CalibrationTab[%d]=%d;\n",i,Delay);
|
||||
CalibrationTab[i]=Delay;
|
||||
write(hFileCsv,csvline,strlen(csvline));
|
||||
|
||||
}*/
|
||||
|
||||
REAL m,b,r;
|
||||
|
||||
for(i=1;i<PWM_STEP_MAXI;i++)
|
||||
{
|
||||
x[i]=i;
|
||||
y[i]=CalibrationTab[i];
|
||||
}
|
||||
#define TangentWindow 10
|
||||
|
||||
float Sum[2]={0.0,0.0};
|
||||
int NumberToAverage=0;
|
||||
for(i=20;i<PWM_STEP_MAXI-20;i++)
|
||||
{
|
||||
int n=TangentWindow+i<PWM_STEP_MAXI?TangentWindow:PWM_STEP_MAXI-i;
|
||||
int Begin=((i-TangentWindow)<0)?i:i-TangentWindow;
|
||||
linreg(n*2,x+Begin,y+Begin,&m,&b,&r);
|
||||
Sum[0]+=m;
|
||||
Sum[1]+=b;
|
||||
NumberToAverage++;
|
||||
//printf("Timing step %d = %f step + %f\n",i,m,b);
|
||||
}
|
||||
|
||||
DelayStep=Sum[0]/NumberToAverage;
|
||||
DelayMini=Sum[1]/NumberToAverage;
|
||||
|
||||
printf("DMA Delay Step =%f Delay =%f\n",DelayStep,DelayMini);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -1103,7 +1192,7 @@ int pitx_init(int SampleRate, double TuningFrequency, int* skipSignals,int SetDm
|
|||
//int FREQ_MINI_TIMING=157;
|
||||
//int PWMF_MARGIN = 1120; //A Margin for now at 1us with PCM ->OK
|
||||
|
||||
if(CalibrateSystem(&globalppmpll,&PWMF_MARGIN,&FREQ_MINI_TIMING)) printf("Calibrate : ppm=%d DMA %fns:%dns\n",globalppmpll,FREQ_MINI_TIMING,PWMF_MARGIN);
|
||||
if(CalibrateSystem(&globalppmpll,&PWMF_MARGIN,&FREQ_MINI_TIMING)) printf("Calibrate : ppm=%d DMA %fns:%fns\n",globalppmpll,DelayStep,DelayMini);
|
||||
//printf("Timing : 1 cyle=%dns 1sample=%dns\n",NBSAMPLES_PWM_FREQ_MAX*400*3,(int)(1e9/(float)SampleRate));
|
||||
return 1;
|
||||
}
|
||||
|
@ -1720,7 +1809,7 @@ int pitx_run(
|
|||
{
|
||||
|
||||
CompteSample++;
|
||||
// if(CompteSample==327670) Up=0;
|
||||
if(CompteSample==327670) Up=0;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1728,9 +1817,9 @@ int pitx_run(
|
|||
if(CompteSample==0) Up=1;
|
||||
}
|
||||
debug=1;//(debug+1)%2;
|
||||
OutputPower=((CompteSample/50)%2)*32767;
|
||||
//OutputPower=((CompteSample/50)%2)*32767;
|
||||
|
||||
uint32_t RealWait=FrequencyAmplitudeToRegister2(GlobalTuningFrequency/HarmonicNumber+(CompteSample*0.00),OutputPower,last_sample++,20000,0,NoUsePwmFrequency,debug);
|
||||
uint32_t RealWait=FrequencyAmplitudeToRegister2(GlobalTuningFrequency/HarmonicNumber+(CompteSample*0.05),OutputPower,last_sample++,20000,0,NoUsePwmFrequency,debug);
|
||||
//printf("RealWait %d\n",(CompteSample/100)%15000+5000);
|
||||
free_slots--;
|
||||
//printf("%f \n",GlobalTuningFrequency+(((CompteSample/10)*1)%50000));
|
||||
|
|
203
src/calibrationpi2.h
Normal file
203
src/calibrationpi2.h
Normal file
|
@ -0,0 +1,203 @@
|
|||
|
||||
void InitCalibrationTabPi2(void)
|
||||
{
|
||||
CalibrationTab[1]=1504;
|
||||
CalibrationTab[2]=1777;
|
||||
CalibrationTab[3]=2048;
|
||||
CalibrationTab[4]=2361;
|
||||
CalibrationTab[5]=2617;
|
||||
CalibrationTab[6]=2865;
|
||||
CalibrationTab[7]=3082;
|
||||
CalibrationTab[8]=3315;
|
||||
CalibrationTab[9]=3538;
|
||||
CalibrationTab[10]=3774;
|
||||
CalibrationTab[11]=3968;
|
||||
CalibrationTab[12]=4219;
|
||||
CalibrationTab[13]=4452;
|
||||
CalibrationTab[14]=4689;
|
||||
CalibrationTab[15]=4900;
|
||||
CalibrationTab[16]=5127;
|
||||
CalibrationTab[17]=5315;
|
||||
CalibrationTab[18]=5507;
|
||||
CalibrationTab[19]=5660;
|
||||
CalibrationTab[20]=5830;
|
||||
CalibrationTab[21]=5975;
|
||||
CalibrationTab[22]=6129;
|
||||
CalibrationTab[23]=6286;
|
||||
CalibrationTab[24]=6444;
|
||||
CalibrationTab[25]=6603;
|
||||
CalibrationTab[26]=6756;
|
||||
CalibrationTab[27]=6915;
|
||||
CalibrationTab[28]=7072;
|
||||
CalibrationTab[29]=7231;
|
||||
CalibrationTab[30]=7389;
|
||||
CalibrationTab[31]=7539;
|
||||
CalibrationTab[32]=7707;
|
||||
CalibrationTab[33]=7838;
|
||||
CalibrationTab[34]=8002;
|
||||
CalibrationTab[35]=8158;
|
||||
CalibrationTab[36]=8315;
|
||||
CalibrationTab[37]=8474;
|
||||
CalibrationTab[38]=8634;
|
||||
CalibrationTab[39]=8790;
|
||||
CalibrationTab[40]=8943;
|
||||
CalibrationTab[41]=9105;
|
||||
CalibrationTab[42]=9260;
|
||||
CalibrationTab[43]=9415;
|
||||
CalibrationTab[44]=9569;
|
||||
CalibrationTab[45]=9745;
|
||||
CalibrationTab[46]=9883;
|
||||
CalibrationTab[47]=10032;
|
||||
CalibrationTab[48]=10197;
|
||||
CalibrationTab[49]=10351;
|
||||
CalibrationTab[50]=10509;
|
||||
CalibrationTab[51]=10663;
|
||||
CalibrationTab[52]=10823;
|
||||
CalibrationTab[53]=10981;
|
||||
CalibrationTab[54]=11138;
|
||||
CalibrationTab[55]=11295;
|
||||
CalibrationTab[56]=11450;
|
||||
CalibrationTab[57]=11616;
|
||||
CalibrationTab[58]=11745;
|
||||
CalibrationTab[59]=11910;
|
||||
CalibrationTab[60]=12067;
|
||||
CalibrationTab[61]=12216;
|
||||
CalibrationTab[62]=12380;
|
||||
CalibrationTab[63]=12534;
|
||||
CalibrationTab[64]=12697;
|
||||
CalibrationTab[65]=12850;
|
||||
CalibrationTab[66]=13012;
|
||||
CalibrationTab[67]=13164;
|
||||
CalibrationTab[68]=13319;
|
||||
CalibrationTab[69]=13477;
|
||||
CalibrationTab[70]=13653;
|
||||
CalibrationTab[71]=13786;
|
||||
CalibrationTab[72]=13944;
|
||||
CalibrationTab[73]=14103;
|
||||
CalibrationTab[74]=14259;
|
||||
CalibrationTab[75]=14411;
|
||||
CalibrationTab[76]=14569;
|
||||
CalibrationTab[77]=14730;
|
||||
CalibrationTab[78]=14887;
|
||||
CalibrationTab[79]=15036;
|
||||
CalibrationTab[80]=15202;
|
||||
CalibrationTab[81]=15356;
|
||||
CalibrationTab[82]=15519;
|
||||
CalibrationTab[83]=15648;
|
||||
CalibrationTab[84]=15816;
|
||||
CalibrationTab[85]=15973;
|
||||
CalibrationTab[86]=16119;
|
||||
CalibrationTab[87]=16284;
|
||||
CalibrationTab[88]=16445;
|
||||
CalibrationTab[89]=16602;
|
||||
CalibrationTab[90]=16758;
|
||||
CalibrationTab[91]=16920;
|
||||
CalibrationTab[92]=17072;
|
||||
CalibrationTab[93]=17228;
|
||||
CalibrationTab[94]=17381;
|
||||
CalibrationTab[95]=17556;
|
||||
CalibrationTab[96]=17694;
|
||||
CalibrationTab[97]=17850;
|
||||
CalibrationTab[98]=18012;
|
||||
CalibrationTab[99]=18164;
|
||||
CalibrationTab[100]=18317;
|
||||
CalibrationTab[101]=18474;
|
||||
CalibrationTab[102]=18637;
|
||||
CalibrationTab[103]=18790;
|
||||
CalibrationTab[104]=18949;
|
||||
CalibrationTab[105]=19107;
|
||||
CalibrationTab[106]=19262;
|
||||
CalibrationTab[107]=19423;
|
||||
CalibrationTab[108]=19550;
|
||||
CalibrationTab[109]=19722;
|
||||
CalibrationTab[110]=19881;
|
||||
CalibrationTab[111]=20028;
|
||||
CalibrationTab[112]=20192;
|
||||
CalibrationTab[113]=20354;
|
||||
CalibrationTab[114]=20505;
|
||||
CalibrationTab[115]=20664;
|
||||
CalibrationTab[116]=20823;
|
||||
CalibrationTab[117]=20978;
|
||||
CalibrationTab[118]=21135;
|
||||
CalibrationTab[119]=21288;
|
||||
CalibrationTab[120]=21462;
|
||||
CalibrationTab[121]=21604;
|
||||
CalibrationTab[122]=21759;
|
||||
CalibrationTab[123]=21917;
|
||||
CalibrationTab[124]=22071;
|
||||
CalibrationTab[125]=22222;
|
||||
CalibrationTab[126]=22384;
|
||||
CalibrationTab[127]=22534;
|
||||
CalibrationTab[128]=22699;
|
||||
CalibrationTab[129]=22855;
|
||||
CalibrationTab[130]=23014;
|
||||
CalibrationTab[131]=23168;
|
||||
CalibrationTab[132]=23326;
|
||||
CalibrationTab[133]=23450;
|
||||
CalibrationTab[134]=23626;
|
||||
CalibrationTab[135]=23785;
|
||||
CalibrationTab[136]=23934;
|
||||
CalibrationTab[137]=24099;
|
||||
CalibrationTab[138]=24264;
|
||||
CalibrationTab[139]=24407;
|
||||
CalibrationTab[140]=24571;
|
||||
CalibrationTab[141]=24725;
|
||||
CalibrationTab[142]=24887;
|
||||
CalibrationTab[143]=25033;
|
||||
CalibrationTab[144]=25193;
|
||||
CalibrationTab[145]=25370;
|
||||
CalibrationTab[146]=25511;
|
||||
CalibrationTab[147]=25664;
|
||||
CalibrationTab[148]=25825;
|
||||
CalibrationTab[149]=25978;
|
||||
CalibrationTab[150]=26129;
|
||||
CalibrationTab[151]=26285;
|
||||
CalibrationTab[152]=26448;
|
||||
CalibrationTab[153]=26604;
|
||||
CalibrationTab[154]=26764;
|
||||
CalibrationTab[155]=26918;
|
||||
CalibrationTab[156]=27081;
|
||||
CalibrationTab[157]=27238;
|
||||
CalibrationTab[158]=27352;
|
||||
CalibrationTab[159]=27531;
|
||||
CalibrationTab[160]=27692;
|
||||
CalibrationTab[161]=27845;
|
||||
CalibrationTab[162]=28005;
|
||||
CalibrationTab[163]=28164;
|
||||
CalibrationTab[164]=28313;
|
||||
CalibrationTab[165]=28478;
|
||||
CalibrationTab[166]=28633;
|
||||
CalibrationTab[167]=28791;
|
||||
CalibrationTab[168]=28948;
|
||||
CalibrationTab[169]=29099;
|
||||
CalibrationTab[170]=29271;
|
||||
CalibrationTab[171]=29415;
|
||||
CalibrationTab[172]=29569;
|
||||
CalibrationTab[173]=29729;
|
||||
CalibrationTab[174]=29885;
|
||||
CalibrationTab[175]=30031;
|
||||
CalibrationTab[176]=30196;
|
||||
CalibrationTab[177]=30352;
|
||||
CalibrationTab[178]=30508;
|
||||
CalibrationTab[179]=30670;
|
||||
CalibrationTab[180]=30827;
|
||||
CalibrationTab[181]=30986;
|
||||
CalibrationTab[182]=31146;
|
||||
CalibrationTab[183]=31254;
|
||||
CalibrationTab[184]=31441;
|
||||
CalibrationTab[185]=31597;
|
||||
CalibrationTab[186]=31751;
|
||||
CalibrationTab[187]=31911;
|
||||
CalibrationTab[188]=32070;
|
||||
CalibrationTab[189]=32219;
|
||||
CalibrationTab[190]=32386;
|
||||
CalibrationTab[191]=32535;
|
||||
CalibrationTab[192]=32699;
|
||||
CalibrationTab[193]=32854;
|
||||
CalibrationTab[194]=33007;
|
||||
CalibrationTab[195]=33176;
|
||||
CalibrationTab[196]=33323;
|
||||
CalibrationTab[197]=33475;
|
||||
CalibrationTab[198]=33636;
|
||||
CalibrationTab[199]=33790;
|
||||
}
|
202
src/calibrationpi3.h
Normal file
202
src/calibrationpi3.h
Normal file
|
@ -0,0 +1,202 @@
|
|||
void InitCalibrationTabPi3(void)
|
||||
{
|
||||
CalibrationTab[1]=1280;
|
||||
CalibrationTab[2]=1533;
|
||||
CalibrationTab[3]=1786;
|
||||
CalibrationTab[4]=2028;
|
||||
CalibrationTab[5]=2289;
|
||||
CalibrationTab[6]=2527;
|
||||
CalibrationTab[7]=2739;
|
||||
CalibrationTab[8]=2957;
|
||||
CalibrationTab[9]=3158;
|
||||
CalibrationTab[10]=3367;
|
||||
CalibrationTab[11]=3556;
|
||||
CalibrationTab[12]=3772;
|
||||
CalibrationTab[13]=3941;
|
||||
CalibrationTab[14]=4160;
|
||||
CalibrationTab[15]=4348;
|
||||
CalibrationTab[16]=4556;
|
||||
CalibrationTab[17]=4760;
|
||||
CalibrationTab[18]=4927;
|
||||
CalibrationTab[19]=5097;
|
||||
CalibrationTab[20]=5272;
|
||||
CalibrationTab[21]=5391;
|
||||
CalibrationTab[22]=5567;
|
||||
CalibrationTab[23]=5752;
|
||||
CalibrationTab[24]=5871;
|
||||
CalibrationTab[25]=6039;
|
||||
CalibrationTab[26]=6201;
|
||||
CalibrationTab[27]=6340;
|
||||
CalibrationTab[28]=6495;
|
||||
CalibrationTab[29]=6672;
|
||||
CalibrationTab[30]=6835;
|
||||
CalibrationTab[31]=7029;
|
||||
CalibrationTab[32]=7117;
|
||||
CalibrationTab[33]=7298;
|
||||
CalibrationTab[34]=7462;
|
||||
CalibrationTab[35]=7638;
|
||||
CalibrationTab[36]=7798;
|
||||
CalibrationTab[37]=7914;
|
||||
CalibrationTab[38]=8038;
|
||||
CalibrationTab[39]=8227;
|
||||
CalibrationTab[40]=8399;
|
||||
CalibrationTab[41]=8550;
|
||||
CalibrationTab[42]=8721;
|
||||
CalibrationTab[43]=8894;
|
||||
CalibrationTab[44]=9050;
|
||||
CalibrationTab[45]=9162;
|
||||
CalibrationTab[46]=9331;
|
||||
CalibrationTab[47]=9504;
|
||||
CalibrationTab[48]=9663;
|
||||
CalibrationTab[49]=9812;
|
||||
CalibrationTab[50]=9976;
|
||||
CalibrationTab[51]=10135;
|
||||
CalibrationTab[52]=10307;
|
||||
CalibrationTab[53]=10538;
|
||||
CalibrationTab[54]=10576;
|
||||
CalibrationTab[55]=10737;
|
||||
CalibrationTab[56]=10914;
|
||||
CalibrationTab[57]=11077;
|
||||
CalibrationTab[58]=11237;
|
||||
CalibrationTab[59]=11412;
|
||||
CalibrationTab[60]=11544;
|
||||
CalibrationTab[61]=11697;
|
||||
CalibrationTab[62]=11859;
|
||||
CalibrationTab[63]=12008;
|
||||
CalibrationTab[64]=12183;
|
||||
CalibrationTab[65]=12347;
|
||||
CalibrationTab[66]=12534;
|
||||
CalibrationTab[67]=12670;
|
||||
CalibrationTab[68]=12762;
|
||||
CalibrationTab[69]=12949;
|
||||
CalibrationTab[70]=13116;
|
||||
CalibrationTab[71]=13277;
|
||||
CalibrationTab[72]=13444;
|
||||
CalibrationTab[73]=13592;
|
||||
CalibrationTab[74]=13757;
|
||||
CalibrationTab[75]=13929;
|
||||
CalibrationTab[76]=14084;
|
||||
CalibrationTab[77]=14196;
|
||||
CalibrationTab[78]=14381;
|
||||
CalibrationTab[79]=14558;
|
||||
CalibrationTab[80]=14682;
|
||||
CalibrationTab[81]=14862;
|
||||
CalibrationTab[82]=15009;
|
||||
CalibrationTab[83]=15188;
|
||||
CalibrationTab[84]=15344;
|
||||
CalibrationTab[85]=15537;
|
||||
CalibrationTab[86]=15722;
|
||||
CalibrationTab[87]=15831;
|
||||
CalibrationTab[88]=15875;
|
||||
CalibrationTab[89]=16074;
|
||||
CalibrationTab[90]=16248;
|
||||
CalibrationTab[91]=16427;
|
||||
CalibrationTab[92]=16575;
|
||||
CalibrationTab[93]=16751;
|
||||
CalibrationTab[94]=16908;
|
||||
CalibrationTab[95]=17068;
|
||||
CalibrationTab[96]=17234;
|
||||
CalibrationTab[97]=17351;
|
||||
CalibrationTab[98]=17523;
|
||||
CalibrationTab[99]=17700;
|
||||
CalibrationTab[100]=17863;
|
||||
CalibrationTab[101]=18061;
|
||||
CalibrationTab[102]=18130;
|
||||
CalibrationTab[103]=18308;
|
||||
CalibrationTab[104]=18486;
|
||||
CalibrationTab[105]=18646;
|
||||
CalibrationTab[106]=18800;
|
||||
CalibrationTab[107]=18998;
|
||||
CalibrationTab[108]=19093;
|
||||
CalibrationTab[109]=19265;
|
||||
CalibrationTab[110]=19454;
|
||||
CalibrationTab[111]=19557;
|
||||
CalibrationTab[112]=19719;
|
||||
CalibrationTab[113]=19895;
|
||||
CalibrationTab[114]=20049;
|
||||
CalibrationTab[115]=20217;
|
||||
CalibrationTab[116]=20374;
|
||||
CalibrationTab[117]=20540;
|
||||
CalibrationTab[118]=20718;
|
||||
CalibrationTab[119]=20926;
|
||||
CalibrationTab[120]=21103;
|
||||
CalibrationTab[121]=21150;
|
||||
CalibrationTab[122]=21212;
|
||||
CalibrationTab[123]=21447;
|
||||
CalibrationTab[124]=21614;
|
||||
CalibrationTab[125]=21776;
|
||||
CalibrationTab[126]=21939;
|
||||
CalibrationTab[127]=22096;
|
||||
CalibrationTab[128]=22260;
|
||||
CalibrationTab[129]=22418;
|
||||
CalibrationTab[130]=22586;
|
||||
CalibrationTab[131]=22737;
|
||||
CalibrationTab[132]=22908;
|
||||
CalibrationTab[133]=23056;
|
||||
CalibrationTab[134]=23206;
|
||||
CalibrationTab[135]=23361;
|
||||
CalibrationTab[136]=23522;
|
||||
CalibrationTab[137]=23725;
|
||||
CalibrationTab[138]=23792;
|
||||
CalibrationTab[139]=23973;
|
||||
CalibrationTab[140]=24146;
|
||||
CalibrationTab[141]=24311;
|
||||
CalibrationTab[142]=24449;
|
||||
CalibrationTab[143]=24616;
|
||||
CalibrationTab[144]=24782;
|
||||
CalibrationTab[145]=24942;
|
||||
CalibrationTab[146]=25115;
|
||||
CalibrationTab[147]=25330;
|
||||
CalibrationTab[148]=25383;
|
||||
CalibrationTab[149]=25526;
|
||||
CalibrationTab[150]=25712;
|
||||
CalibrationTab[151]=25881;
|
||||
CalibrationTab[152]=26043;
|
||||
CalibrationTab[153]=26201;
|
||||
CalibrationTab[154]=26375;
|
||||
CalibrationTab[155]=26496;
|
||||
CalibrationTab[156]=26672;
|
||||
CalibrationTab[157]=26842;
|
||||
CalibrationTab[158]=27017;
|
||||
CalibrationTab[159]=27165;
|
||||
CalibrationTab[160]=27287;
|
||||
CalibrationTab[161]=27433;
|
||||
CalibrationTab[162]=27597;
|
||||
CalibrationTab[163]=27764;
|
||||
CalibrationTab[164]=27939;
|
||||
CalibrationTab[165]=28094;
|
||||
CalibrationTab[166]=28212;
|
||||
CalibrationTab[167]=28385;
|
||||
CalibrationTab[168]=28560;
|
||||
CalibrationTab[169]=28717;
|
||||
CalibrationTab[170]=28856;
|
||||
CalibrationTab[171]=29027;
|
||||
CalibrationTab[172]=29213;
|
||||
CalibrationTab[173]=29322;
|
||||
CalibrationTab[174]=29509;
|
||||
CalibrationTab[175]=29651;
|
||||
CalibrationTab[176]=29834;
|
||||
CalibrationTab[177]=29963;
|
||||
CalibrationTab[178]=30142;
|
||||
CalibrationTab[179]=30297;
|
||||
CalibrationTab[180]=30470;
|
||||
CalibrationTab[181]=30609;
|
||||
CalibrationTab[182]=30792;
|
||||
CalibrationTab[183]=30953;
|
||||
CalibrationTab[184]=31129;
|
||||
CalibrationTab[185]=31322;
|
||||
CalibrationTab[186]=31598;
|
||||
CalibrationTab[187]=31656;
|
||||
CalibrationTab[188]=31707;
|
||||
CalibrationTab[189]=31777;
|
||||
CalibrationTab[190]=31917;
|
||||
CalibrationTab[191]=32145;
|
||||
CalibrationTab[192]=32335;
|
||||
CalibrationTab[193]=32465;
|
||||
CalibrationTab[194]=32648;
|
||||
CalibrationTab[195]=32803;
|
||||
CalibrationTab[196]=32980;
|
||||
CalibrationTab[197]=33105;
|
||||
CalibrationTab[198]=33288;
|
||||
CalibrationTab[199]=33439;}
|
||||
|
203
src/calibrationpizero.h
Normal file
203
src/calibrationpizero.h
Normal file
|
@ -0,0 +1,203 @@
|
|||
void InitCalibrationTabPiZero(void)
|
||||
{
|
||||
|
||||
CalibrationTab[1]=1135;
|
||||
CalibrationTab[2]=1317;
|
||||
CalibrationTab[3]=1521;
|
||||
CalibrationTab[4]=1712;
|
||||
CalibrationTab[5]=1891;
|
||||
CalibrationTab[6]=2064;
|
||||
CalibrationTab[7]=2239;
|
||||
CalibrationTab[8]=2414;
|
||||
CalibrationTab[9]=2578;
|
||||
CalibrationTab[10]=2752;
|
||||
CalibrationTab[11]=2894;
|
||||
CalibrationTab[12]=3057;
|
||||
CalibrationTab[13]=3212;
|
||||
CalibrationTab[14]=3363;
|
||||
CalibrationTab[15]=3527;
|
||||
CalibrationTab[16]=3714;
|
||||
CalibrationTab[17]=3866;
|
||||
CalibrationTab[18]=3979;
|
||||
CalibrationTab[19]=4175;
|
||||
CalibrationTab[20]=4316;
|
||||
CalibrationTab[21]=4512;
|
||||
CalibrationTab[22]=4627;
|
||||
CalibrationTab[23]=4805;
|
||||
CalibrationTab[24]=4930;
|
||||
CalibrationTab[25]=5104;
|
||||
CalibrationTab[26]=5281;
|
||||
CalibrationTab[27]=5408;
|
||||
CalibrationTab[28]=5578;
|
||||
CalibrationTab[29]=5759;
|
||||
CalibrationTab[30]=5882;
|
||||
CalibrationTab[31]=6044;
|
||||
CalibrationTab[32]=6208;
|
||||
CalibrationTab[33]=6349;
|
||||
CalibrationTab[34]=6507;
|
||||
CalibrationTab[35]=6678;
|
||||
CalibrationTab[36]=6831;
|
||||
CalibrationTab[37]=7036;
|
||||
CalibrationTab[38]=7121;
|
||||
CalibrationTab[39]=7292;
|
||||
CalibrationTab[40]=7464;
|
||||
CalibrationTab[41]=7620;
|
||||
CalibrationTab[42]=7796;
|
||||
CalibrationTab[43]=7929;
|
||||
CalibrationTab[44]=8254;
|
||||
CalibrationTab[45]=8232;
|
||||
CalibrationTab[46]=8398;
|
||||
CalibrationTab[47]=8533;
|
||||
CalibrationTab[48]=8701;
|
||||
CalibrationTab[49]=8881;
|
||||
CalibrationTab[50]=9055;
|
||||
CalibrationTab[51]=9149;
|
||||
CalibrationTab[52]=9320;
|
||||
CalibrationTab[53]=9489;
|
||||
CalibrationTab[54]=9647;
|
||||
CalibrationTab[55]=9774;
|
||||
CalibrationTab[56]=9952;
|
||||
CalibrationTab[57]=10105;
|
||||
CalibrationTab[58]=10277;
|
||||
CalibrationTab[59]=10544;
|
||||
CalibrationTab[60]=10579;
|
||||
CalibrationTab[61]=10722;
|
||||
CalibrationTab[62]=10887;
|
||||
CalibrationTab[63]=11046;
|
||||
CalibrationTab[64]=11207;
|
||||
CalibrationTab[65]=11364;
|
||||
CalibrationTab[66]=11690;
|
||||
CalibrationTab[67]=11697;
|
||||
CalibrationTab[68]=11826;
|
||||
CalibrationTab[69]=11973;
|
||||
CalibrationTab[70]=12141;
|
||||
CalibrationTab[71]=12311;
|
||||
CalibrationTab[72]=12513;
|
||||
CalibrationTab[73]=12679;
|
||||
CalibrationTab[74]=12736;
|
||||
CalibrationTab[75]=12911;
|
||||
CalibrationTab[76]=13071;
|
||||
CalibrationTab[77]=13234;
|
||||
CalibrationTab[78]=13381;
|
||||
CalibrationTab[79]=13579;
|
||||
CalibrationTab[80]=13688;
|
||||
CalibrationTab[81]=13861;
|
||||
CalibrationTab[82]=14182;
|
||||
CalibrationTab[83]=14209;
|
||||
CalibrationTab[84]=14328;
|
||||
CalibrationTab[85]=14485;
|
||||
CalibrationTab[86]=14653;
|
||||
CalibrationTab[87]=14799;
|
||||
CalibrationTab[88]=14948;
|
||||
CalibrationTab[89]=15119;
|
||||
CalibrationTab[90]=15275;
|
||||
CalibrationTab[91]=15453;
|
||||
CalibrationTab[92]=15741;
|
||||
CalibrationTab[93]=15841;
|
||||
CalibrationTab[94]=15875;
|
||||
CalibrationTab[95]=16029;
|
||||
CalibrationTab[96]=16294;
|
||||
CalibrationTab[97]=16368;
|
||||
CalibrationTab[98]=16516;
|
||||
CalibrationTab[99]=16682;
|
||||
CalibrationTab[100]=16834;
|
||||
CalibrationTab[101]=16961;
|
||||
CalibrationTab[102]=17148;
|
||||
CalibrationTab[103]=17315;
|
||||
CalibrationTab[104]=17453;
|
||||
CalibrationTab[105]=17621;
|
||||
CalibrationTab[106]=17772;
|
||||
CalibrationTab[107]=17944;
|
||||
CalibrationTab[108]=18129;
|
||||
CalibrationTab[109]=18319;
|
||||
CalibrationTab[110]=18387;
|
||||
CalibrationTab[111]=18548;
|
||||
CalibrationTab[112]=18690;
|
||||
CalibrationTab[113]=18872;
|
||||
CalibrationTab[114]=19046;
|
||||
CalibrationTab[115]=19166;
|
||||
CalibrationTab[116]=19338;
|
||||
CalibrationTab[117]=19531;
|
||||
CalibrationTab[118]=19627;
|
||||
CalibrationTab[119]=19813;
|
||||
CalibrationTab[120]=20050;
|
||||
CalibrationTab[121]=20106;
|
||||
CalibrationTab[122]=20273;
|
||||
CalibrationTab[123]=20434;
|
||||
CalibrationTab[124]=20613;
|
||||
CalibrationTab[125]=20853;
|
||||
CalibrationTab[126]=21102;
|
||||
CalibrationTab[127]=21134;
|
||||
CalibrationTab[128]=21185;
|
||||
CalibrationTab[129]=21347;
|
||||
CalibrationTab[130]=21592;
|
||||
CalibrationTab[131]=21666;
|
||||
CalibrationTab[132]=21834;
|
||||
CalibrationTab[133]=21991;
|
||||
CalibrationTab[134]=22143;
|
||||
CalibrationTab[135]=22304;
|
||||
CalibrationTab[136]=22437;
|
||||
CalibrationTab[137]=22638;
|
||||
CalibrationTab[138]=22767;
|
||||
CalibrationTab[139]=22929;
|
||||
CalibrationTab[140]=23178;
|
||||
CalibrationTab[141]=23241;
|
||||
CalibrationTab[142]=23413;
|
||||
CalibrationTab[143]=23551;
|
||||
CalibrationTab[144]=23784;
|
||||
CalibrationTab[145]=23835;
|
||||
CalibrationTab[146]=24010;
|
||||
CalibrationTab[147]=24187;
|
||||
CalibrationTab[148]=24345;
|
||||
CalibrationTab[149]=24573;
|
||||
CalibrationTab[150]=24658;
|
||||
CalibrationTab[151]=24802;
|
||||
CalibrationTab[152]=24963;
|
||||
CalibrationTab[153]=25151;
|
||||
CalibrationTab[154]=25370;
|
||||
CalibrationTab[155]=25401;
|
||||
CalibrationTab[156]=25567;
|
||||
CalibrationTab[157]=25813;
|
||||
CalibrationTab[158]=25890;
|
||||
CalibrationTab[159]=26055;
|
||||
CalibrationTab[160]=26182;
|
||||
CalibrationTab[161]=26387;
|
||||
CalibrationTab[162]=26504;
|
||||
CalibrationTab[163]=26684;
|
||||
CalibrationTab[164]=26833;
|
||||
CalibrationTab[165]=27080;
|
||||
CalibrationTab[166]=27207;
|
||||
CalibrationTab[167]=27308;
|
||||
CalibrationTab[168]=27444;
|
||||
CalibrationTab[169]=27617;
|
||||
CalibrationTab[170]=27790;
|
||||
CalibrationTab[171]=27933;
|
||||
CalibrationTab[172]=28097;
|
||||
CalibrationTab[173]=28320;
|
||||
CalibrationTab[174]=28390;
|
||||
CalibrationTab[175]=28559;
|
||||
CalibrationTab[176]=28707;
|
||||
CalibrationTab[177]=28873;
|
||||
CalibrationTab[178]=29016;
|
||||
CalibrationTab[179]=29191;
|
||||
CalibrationTab[180]=29407;
|
||||
CalibrationTab[181]=29494;
|
||||
CalibrationTab[182]=29644;
|
||||
CalibrationTab[183]=29812;
|
||||
CalibrationTab[184]=29936;
|
||||
CalibrationTab[185]=30110;
|
||||
CalibrationTab[186]=30274;
|
||||
CalibrationTab[187]=30496;
|
||||
CalibrationTab[188]=30613;
|
||||
CalibrationTab[189]=30762;
|
||||
CalibrationTab[190]=30932;
|
||||
CalibrationTab[191]=31146;
|
||||
CalibrationTab[192]=31604;
|
||||
CalibrationTab[193]=31659;
|
||||
CalibrationTab[194]=31714;
|
||||
CalibrationTab[195]=31716;
|
||||
CalibrationTab[196]=31796;
|
||||
CalibrationTab[197]=31973;
|
||||
CalibrationTab[198]=32129;
|
||||
CalibrationTab[199]=32299;
|
||||
}
|
Loading…
Reference in a new issue