📄 data_process.c.bak
字号:
#include "config.h"
extern unsigned char dp2rass[5];
extern unsigned char work_mode;
extern unsigned char work_grade;
extern unsigned char Ns;//频率点的个数
extern unsigned int Fh,Fl;
extern unsigned int seed;
extern unsigned char TCNT1_L;
extern unsigned char TCNT1_H;
extern unsigned int D15_0;//为2315控制字
const unsigned int Freq_scale[]={ 2020,2026,2032,2037,2043,2049,2054,2060,2065,2071,2077,2082,
2088,2093,2099,2104,2110,2115,2121,2126,2132,2137,2143,2148,
2153,2159,2164,2169,2175,2180,2185,2191,2196,2201,2207,2212,
2217,2222,2228,2233,2238,2243,2248,2253,2259,2264,2269,2274,
2279,2284,2289,2294,2299,2304,2309,2314,2319,2324,2329,2334,
2339,2344,2349,2354,2359,2364,2369,2374,2379,2383,2388,2393,
2398,2403,2408,2412,2417,2422,2427,2432,2436,2441,2446,2451,
2455,2460,2465,2469,2474,2479,2483,2488,2493,2497,2502,2507,
2511,2516,2520,2525,2530,2534,2539,2543,2548,2552,2557,2562,
2566,2571,2575,2580,2584,2589,2593,2598,2602,2606,2611,2615,
2620,2624,2629,2633,2637,2642,2646,2651,2655,2659,2664,2668,
2672,2677,2681,2685,2690,2694,2698,2703,2707,2711,2715,2720,
2724,2728,2732,2737,2741,2745,2749,2753,2758,2762,2766,2770,
2774,2779,2783,2787,2791,2795,2799,2804,2808,2812,2816
}
void delay_us(unsigned char us)
{
do{
asm("nop\n nop\n");
us--;
}while(us>0);
}
void data_process(void)
{
unsigned int work_T,work_Ns,work_Ts,T;
unsigned int time_count;
work_mode=(dp2rass[0]&0x04)>>2;
work_grade=(dp2rass[0]&0x18)>>3;
work_Ts=dp2rass[2]>>1;
Fl=Freq_scale[work_Ts]; //低频
Fh=Freq_scale[work_Ts+40]; //高频
work_Ns=(dp2rass[0]&0xe0)>>5;
if(work_Ns==7)
Ns=Fh-Fl; //为7的时候采用全部频率点
else
Ns=24*(work_Ns+1);
work_T=(dp2rass[1]&0x1e)>>1;
T=(work_T+1)*Ns; //循环周期为这么多毫秒
//1024分频情况下,每毫秒7.2计数周期
time_count=65535-(T*72)/10;
TCNT1_L=time_count&0xff;
TCNT1_H=time_count>>8;
}
unsigned int rand(unsigned int randseed)
{
unsigned int rand_num;
rand_num= (randseed * rand_x + rand_y) % 251 + Fl; //求出来的是那个随机的频率
seed = rand_num;
D15_0=(rand_num*256)/100; //把这个频率换算成为控制字
return D15_0;
}
//线性递增函数采用先放大再缩小的办法产生频率
unsigned int line(unsigned int i)
{
seed=(Fh-Fl)*i/Ns+Fl;
D15_0=(mid*256)/100;
return D15_0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -