📄 main.c
字号:
//#include <defts201.h>
//#include <sysreg.h>
#include <math.h>
#include <stdio.h>
//#include"stdio.h"
//#include"BCH_var.h"
#include"extern_BCH_var.h"
#include"VCC_DEFINE.H";
short error_tran_bit[31];
short word_tran_bit[31],flag;
// make programm for testing BCH and BCH DECODE.2006-3-24
//unsigned short BCHTAB[16]={22160,22737,17491,32087,3935,7870,15740,31480,30193,7699,
// 15398,30796,1385,2770,5540,11080};
// for TEST the programma 2006-4-5
unsigned short BCH1_data;
unsigned short BCH1_CRC;
unsigned long BCH2_data;
unsigned long BCH2_CRC;
//unsigned short BCHTAB[16]={22160,22737,17491,32087,3935,7870,15740,31480,30193,7699,
// 15398,30796,1385,2770,5540,11080};
unsigned short BCH_TAB[16]={31480,15740,7870,3935,32087,17491,22737,22160,
11080,5540,2770,1385,30796,15398,7699,30193};
unsigned short BCH_TABLE[21]={603,886,443,646,323,762,381,741,809,975,956,478,
239,556,278,139,542,271,732,366,183};
short DEBCH1_data[31];
short DEBCH1_flag;
long falpha[32]={1,2,4,8,16,5,10,20,13,26,
17,7,14,28,29,31,27,19,3,6,
12,24,21,15,30,25,23,11,22,9,
18,-858993460};
long findex[32]={ -1,0,1,18,2,5,19,11,3,29,
6,27,20,8,12,23,4,10,30,17,
7,22,28,26,21,25,9,16,13,14,
24,15};
int voice_data_down_line_g729d[30][12];
int voice_data_up_line_g729d[30][12];
//for TEST the programma 2006-4-5.
void main(void)
{
//extern unsigned char BCH1_data[2];
// unsigned char BCH1_data[2]={192,0};
extern short word_tran_bit[31],flag;
extern short error_tran_bit[31];
unsigned short point_org,test_db;
unsigned short point_crc;
unsigned short Buffer_data[6];
unsigned short Receive_Buffer_data[30][6];
short channel_out_bit[90];
short word1_tran_bit[31];
short serial_bit_channel[64];
unsigned short Receive_Buffer_Temp;
int j,t;
int i=1;
int flag1=0;
//dengbing for TEST the programm 2006-4-3
unsigned short table_number[10]={8,10,8,9,9,2,6,4,9,6};
//unsigned short TEST_temp[64];
unsigned short temp1;
//dengbing for TEST the programm 2006-4-3.
unsigned short TEST_temp[64];
unsigned short g729d_voice_important_bit;
unsigned long g729d_voice_secondary_bit;
unsigned long BCH_DeCode_Temp=0;
unsigned short table[64]={21,20,22,19,4,23,8,2,64,43,
5,44,6,63,42,24,45,7,
1,3,9,10,11,12,13,14,
15,16,17,18,25,26,27,28,
29,30,31,32,33,34,35,36,
37,38,39,40,41,46,47,48,
49,50,51,52,53,54,55,56,
57,58,59,60,61,62};
unsigned short BCH_decode_data[64],decodein[64];
unsigned short count=0;
// TEST programm from dengbing 20060403
for(j=0;j<64;j++)
{
if(j%2==0) TEST_temp[j]=1;
else TEST_temp[j]=0;
}
for (j=0;j<10;j++)
{
//count++;
//unsinged short temp1=0;
temp1=0;
//temp=table_number[j];
for(t=0;t<table_number[j];t++)
{
if(TEST_temp[count++]&0x01==1)
temp1=temp1|1;
temp1=temp1<<1;
}
temp1=temp1>>1;
voice_data_down_line_g729d[i][j+1]=temp1;
}
/*for (j=0;j<11;j++)
{ voice_data_down_line_g729d[i][j]=0x123;
}
*/
//TEST programm from dengbing 20060403.
//
g729d_voice_important_bit=(((voice_data_down_line_g729d[i][3] & BIT5) >> 5) << 15) |
(((voice_data_down_line_g729d[i][3] & BIT6) >> 6) << 14) |
(((voice_data_down_line_g729d[i][3] & BIT4) >> 4) << 13) |
(((voice_data_down_line_g729d[i][3] & BIT7) >> 7) << 12) |
(((voice_data_down_line_g729d[i][1] & BIT4) >> 4) << 11) |
(((voice_data_down_line_g729d[i][3] & BIT3) >> 2) << 10) |
(((voice_data_down_line_g729d[i][1] & BIT0) >> 0) << 9) |
(((voice_data_down_line_g729d[i][1] & BIT6) >> 6) << 8) |
(((voice_data_down_line_g729d[i][10] & BIT0) >> 0) << 7) |
(((voice_data_down_line_g729d[i][6] & BIT0) >> 0) << 6) |
(((voice_data_down_line_g729d[i][1] & BIT3) >> 3) << 5)|
(((voice_data_down_line_g729d[i][7] & BIT3) >> 3) << 4)|
(((voice_data_down_line_g729d[i][1] & BIT2) >> 2) << 3)|
(((voice_data_down_line_g729d[i][10] & BIT1) >> 1) << 2)|
(((voice_data_down_line_g729d[i][6] & BIT1) >> 1) << 1)|
(((voice_data_down_line_g729d[i][3] & BIT2) >> 2) << 0);
// 从64个比特中抽出16个最敏感的比特来做BCH(31,16)
g729d_voice_secondary_bit=(((voice_data_down_line_g729d[i][7] & BIT2) >> 2) << 13) |
(((voice_data_down_line_g729d[i][1] & BIT1) >> 1) << 12) |
(((voice_data_down_line_g729d[i][5] & BIT1) >> 1) << 11) |
(((voice_data_down_line_g729d[i][9] & BIT0) >> 0) << 10) |
(((voice_data_down_line_g729d[i][5] & BIT0) >> 0) << 9) |
(((voice_data_down_line_g729d[i][9] & BIT1) >> 1) << 8) |
(((voice_data_down_line_g729d[i][1] & BIT5) >> 5) << 7) |
(((voice_data_down_line_g729d[i][2] & BIT8) >> 8) << 6) |
(((voice_data_down_line_g729d[i][3] & BIT1) >> 1) << 5) |
(((voice_data_down_line_g729d[i][2] & BIT5) >> 5) << 4) |
(((voice_data_down_line_g729d[i][2] & BIT3) >> 6) << 3)|
(((voice_data_down_line_g729d[i][7] & BIT1) >> 1) << 2)|
(((voice_data_down_line_g729d[i][8] & BIT3) >> 3) << 1)|
(((voice_data_down_line_g729d[i][2] & BIT9) >> 9) << 0);
//从64个比特中抽出14个次敏感的比特来做BCH(31,21)
/*g729d_voice_important_bit=3;
g729d_voice_secondary_bit=5;
*/
BCH1_data=g729d_voice_important_bit;
encode_BCH1();
//word_org=&BCH1_data
BCH2_data=(g729d_voice_secondary_bit<<7);
encode_BCH2();
/*
//把生成的90个比特,放到6个15个比特的word中主要包括BCH1(31bit)、BCH2(24bit)以及不敏感比特34个bit.
Buffer_data[0]=((g729d_voice_important_bit&BIT15>>15)<<0)|
((g729d_voice_important_bit&BIT14>>14)<<1)|
((g729d_voice_important_bit&BIT13>>13)<<2)|
((g729d_voice_important_bit&BIT12>>12)<<3)|
((g729d_voice_important_bit&BIT11>>11)<<4)|
((g729d_voice_important_bit&BIT10>>10)<<5)|
((g729d_voice_important_bit&BIT9>>9)<<6)|
((g729d_voice_important_bit&BIT8>>8)<<7)|
((g729d_voice_important_bit&BIT7>>7)<<8)|
((g729d_voice_important_bit&BIT6>>6)<<9)|
((BCH1_CRC&BIT14>>14)<<10)|
((BCH1_CRC&BIT13>>13)<<11)|
((BCH1_CRC&BIT12>>12)<<12)|
((BCH1_CRC&BIT11>>11)<<13)|
((BCH1_CRC&BIT10>>10)<<14);
Buffer_data[1]=((BCH1_CRC&BIT9>>9)<<0)|
((BCH1_CRC&BIT8>>8)<<1)|
((BCH1_CRC&BIT7>>7)<<2)|
((BCH1_CRC&BIT6>>6)<<3)|
((BCH1_CRC&BIT5>>5)<<4)|
((BCH1_CRC&BIT4>>4)<<5)|
((BCH1_CRC&BIT3>>3)<<6)|
((BCH1_CRC&BIT2>>2)<<7)|
((BCH1_CRC&BIT1>>1)<<8)|
((BCH1_CRC&BIT0>>0)<<9)|
((g729d_voice_important_bit&BIT5>>5)<<10)|
((g729d_voice_important_bit&BIT4>>4)<<11)|
((g729d_voice_important_bit&BIT3>>3)<<12)|
((g729d_voice_important_bit&BIT2>>2)<<13)|
((g729d_voice_important_bit&BIT1>>1)<<14);
Buffer_data[2]= ((g729d_voice_important_bit&BIT0>>0)<<0)|
((g729d_voice_secondary_bit&BIT13>>13)<<1)|
((g729d_voice_secondary_bit&BIT12>>12)<<2)|
((BCH2_CRC&BIT9>>9)<<3)|
((BCH2_CRC&BIT8>>8)<<4)|
((BCH2_CRC&BIT7>>7)<<5)|
((BCH2_CRC&BIT6>>6)<<6)|
((BCH2_CRC&BIT5>>5)<<7)|
((BCH2_CRC&BIT4>>4)<<8)|
((BCH2_CRC&BIT3>>3)<<9)|
((BCH2_CRC&BIT2>>2)<<10)|
((BCH2_CRC&BIT1>>1)<<11)|
((BCH2_CRC&BIT0>>0)<<12)|
(((voice_data_down_line_g729d[i][1] & BIT7) >> 7) << 13)|//a1.7
(((voice_data_down_line_g729d[i][1] & BIT5) >> 5) << 14);//a1.5;
Buffer_data[3]=(((voice_data_down_line_g729d[i][2] & BIT9) >> 9) << 0)|//a2.9
(((voice_data_down_line_g729d[i][2] & BIT8) >> 8) << 1)|//a2.8
(((voice_data_down_line_g729d[i][2] & BIT7) >> 7) << 2)|//a2.7
(((voice_data_down_line_g729d[i][2] & BIT6) >> 6) << 3)|//a2.6
(((voice_data_down_line_g729d[i][2] & BIT5) >> 5) << 4)|//a2.5
(((voice_data_down_line_g729d[i][2] & BIT4) >> 4) << 5)|//a2.4
(((voice_data_down_line_g729d[i][2] & BIT3) >> 3) << 6)|//a2.3
(((voice_data_down_line_g729d[i][2] & BIT2) >> 2) << 7)|//a2.2
(((voice_data_down_line_g729d[i][2] & BIT1) >> 1) << 8)| //a2.1
(((voice_data_down_line_g729d[i][2] & BIT0) >> 0) << 9)| //a2.0
(((voice_data_down_line_g729d[i][3] & BIT1) >> 1) << 10)| //a3.1
(((voice_data_down_line_g729d[i][3] & BIT0) >> 0) << 11)| //a3.0;
(((voice_data_down_line_g729d[i][4] & BIT8) >> 8) << 12)| //a4.8
(((voice_data_down_line_g729d[i][4] & BIT7) >> 7) << 13)|
(((voice_data_down_line_g729d[i][4] & BIT6) >> 6) << 14); //a4.6
Buffer_data[4]= (((voice_data_down_line_g729d[i][4] & BIT5) >> 5) << 0)|
(((voice_data_down_line_g729d[i][4] & BIT4) >> 4) << 1)| //a4.4
(((voice_data_down_line_g729d[i][4] & BIT3) >> 3) << 2)|
(((voice_data_down_line_g729d[i][4] & BIT2) >> 2) << 3)|
(((voice_data_down_line_g729d[i][4] & BIT1) >> 1) << 4)|
(((voice_data_down_line_g729d[i][4] & BIT0) >> 0) << 5)|
(((voice_data_down_line_g729d[i][5] & BIT1) >> 1) << 6)| //a5.1
(((voice_data_down_line_g729d[i][5] & BIT0) >> 0) << 7)| //a5.0
(((voice_data_down_line_g729d[i][6] & BIT5) >> 5) << 8)| //a6.5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -