⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 通讯误码仪测试软件
💻 C
📖 第 1 页 / 共 2 页
字号:
#include  "mptpack.h"
#include  "1327all.h"
#include  "sfr62.h"
#include  "mcu.h"
#include  "os.h"
#include  "..\crc\crch.h"
#include  "..\aloha\aloha.h"
//#define		LCD_EXIST
//#define		KEY_EXIST
//#define		IIC_EXIST
//#define		UART_EXIST
#define		PLL_EXIST

#ifdef		LCD_EXIST
#include  "..\lcd\lcd.h"
#include  "..\display\display.h"
#endif

#ifdef		KEY_EXIST
#include  "..\key\key.h"
#endif

#ifdef		IIC_EXIST
#include  "..\iic\iic.h"
#endif

#ifdef		UART_EXIST
#include  "..\uart\uart.h"
#endif

#ifdef		PLL_EXIST
#include  "..\pll\pll.h"
#endif

//#include  "..\lib\alohalib.h"

//const INT8U linecode1[]={" this is test!"};
//const INT8U linecode2[]={"please affirm"};
const INT8U linecode1[]={"跋巴芭百白摆败柏"};
const INT8U linecode2[]={"拜佰伯稗被北倍杯"};
const INT8U linecode3[]={"跋巴芭百白摆败柏"};
const INT8U linecode4[]={"跋巴芭百白摆败柏"};
const INT8U linecode5[]={"啊阿吧把八爸拔罢"};
const INT8U linecode6[]={"跋巴芭百白摆败柏"};
const INT8U linecode7[]={"拜佰伯稗被北倍杯"};
const INT8U linecode8[]={"跋巴芭百白摆败柏"};
const INT8U linecode9[]={"跋巴芭百白摆败柏"};
const INT8U linecode10[]={"啊阿吧把八爸拔罢"};

void far main(void);

void uart_test(void); 
void iic_test(void);
void lcd_test(void);

void bs_oneslot_test(void);
void bs_twoslot_test(void);
void bs_test(void);
void ms_test(void);
void bs_frametest(void);
void ms_frametest(void);
void ms_test_rqr(void);

void move_to_buf(void);
void move_to_rcvbuf(void);
void move_to_trbuf(void);
void move_to_getframe(void);
void move_to_tmp(void);
void move_tmpto_buf(void);
void clear_trframe_buf(void);


void make_alh(void);
void make_rqr_ack(void);
void make_rqr_ackx(void);
void make_rqs_acki(void);
void make_rqs_ackq(void);
void make_rqs_ackx(void);
void make_rqs_ackv(void);
void make_rqt_ack(void);
void make_rqe_acki(void);
void make_rqe_ackq(void);
void make_rqe_ackx(void);
void make_rqe_ackv(void);
void make_rqx_ack(void);
void make_ahy(void);
void make_ahyx(void);
void make_ahyc(void);
void make_ahyd_build(void);
void make_ahyd_cancel(void);
void make_ahyk(void);
void make_ahyi(void);
void make_gtc(void);
void make_rqr(void);



GET_FRAME get_frame;
TR_FRAME tr_frame;
INT8U buf[40],rcvbuf[40],txtmp[8];
extern INT8U fskmt_buf[48];
extern	test_fun();
INT8U *pframe,*pgetframe;
INT16U *ppframe,*pppframe;
INT16U crc;
INT16U result=0,ttt=0;
INT8U eedata;
INT8U eeedata[4];
INT8U N=4,counter =3;


const INT32U ChTxTable[4] = {0x73a0,0x7530,0x76c0,0x7850};  //370,375,380,385MHZ

const INT32U ChRxTable[4] = {0x6844,0x69d4,0x6bd4,0x69d4};  //380,385,390,385MHZ, IF 46.350MHZ

void far  main(void)
{
 InitPLLHW();
 PLLSetChannel(ChTxTable[0],ChRxTable[0]);
 HwOpenPTTTx();
 do{
    }while(1);













 pframe = (INT8U *)&tr_frame;
 ppframe = (INT16U *)&tr_frame;
 pppframe = (INT16U *)&fskmt_buf;
 pgetframe = (INT8U *)get_frame.Buf;
 ENABLE_INT();
// uart_test(); 
// iic_test();
// lcd_test();
// bs_oneslot_test();
// bs_twoslot_test();
// bs_test();
 ms_test();
// ms_test_rqr();
//  bs_frametest();
//  ms_frametest();
  
}


void bs_oneslot_test(void)
{
 clear_trframe_buf();
    
 tr_frame.Aloha.FILL0 = 0;
 tr_frame.Aloha.PFIX = 0x11;
 tr_frame.Aloha.IDENT1 = 0x1555;
 tr_frame.Aloha.CAT = 1;
 tr_frame.Aloha.TYPE = 0;
 tr_frame.Aloha.FUNC = 1; 
 tr_frame.Aloha.CHAN4 = 1;  
 tr_frame.Aloha.WT = 4;
 tr_frame.Aloha.M = 3;
 tr_frame.Aloha.N = 2;
 enstru_1327(pframe,3);

 crc = aloha_encode_crc(pframe + 5);
 *(pppframe + 16) = crc;
 *(pppframe +17) = *(ppframe);
 *(pppframe +18) = *(ppframe + 1);
 *(pppframe +19) = *(ppframe + 2);

 aloha_init(0,0xaa,1);
 aloha_tx(pframe+6,1,0,10);
 do{
    if(aloha_status() == FSKSTATUS_OVERWT)   //FSKSTATUS_RCV_OK)
      {
      	result = decode_crc((INT8U *)pppframe-1);
      	ttt=!ttt;
      	if(ttt)	aloha_tx(pframe+6,1,0,0);
      	}
    } while(1);
}


void bs_twoslot_test(void)
{
 clear_trframe_buf();
    
 tr_frame.Head.FILL0 = 1;
 tr_frame.Head.PFIX = 0x35;
 tr_frame.Head.IDENT1 = 0x1555;
 tr_frame.Head.FILL1 = 1;
 tr_frame.Head.CAT = 1;
 tr_frame.Head.TYPE = 1;
 tr_frame.Head.LEN = 4;
 tr_frame.Head.PFIX2 = 0x1;
 tr_frame.Head.IDENT2 = 0x1555;
 enstru_1327(pframe,3);
 crc = aloha_encode_crc(pframe + 5);
 *(pppframe + 16) = crc;
 *(pppframe +17) = *(ppframe);
 *(pppframe +18) = *(ppframe + 1);
 *(pppframe +19) = *(ppframe+ 2);
 
 *ppframe = 0x4321;
 *(ppframe + 1) = 0x8765;
 *(ppframe + 2) = 0x0ba9;
 crc = aloha_encode_crc(pframe + 5);
 *(pppframe + 12) = crc;
 *(pppframe +13) = *(ppframe);
 *(pppframe +14) = *(ppframe + 1);
 *(pppframe +15) = *(ppframe + 2);

*ppframe = 0x0fecd;
 *(ppframe + 1) = 0x4321;
 *(ppframe + 2) = 0x765;
 crc = aloha_encode_crc(pframe + 5);
 *(pppframe + 8) = crc;
 *(pppframe +9) = *(ppframe);
 *(pppframe +10) = *(ppframe + 1);
 *(pppframe +11) = *(ppframe + 2);

*ppframe = 0x0ba98;
 *(ppframe + 1) = 0x0efcd;
 *(ppframe + 2) = 0x321;
 crc = aloha_encode_crc(pframe + 5);
 *(pppframe + 4) = crc;
 *(pppframe +5) = *(ppframe);
 *(pppframe +6) = *(ppframe + 1);
 *(pppframe +7) = *(ppframe + 2);

*ppframe = 0x07654;
 *(ppframe + 1) = 0x0ba98;
 *(ppframe + 2) = 0x0ecd;
 crc = aloha_encode_crc(pframe + 5);
 *(pppframe + 0) = crc;
 *(pppframe +1) = *(ppframe);
 *(pppframe +2) = *(ppframe + 1);
 *(pppframe +3) = *(ppframe + 2);

 aloha_init(2,0xaa,1);

 do{
    if(aloha_status() == FSKSTATUS_RCV_OK)
      {
      	result = decode_crc((INT8U *)pppframe-1);
      	if(!ttt)
      	  {
      	  	ttt = !ttt; 
      	  	aloha_set_rcvnum(5);
      		}
      	else{
      	  	ttt = !ttt; 
      		result = 0;
	      	result = decode_crc((INT8U *)pppframe-1);
	      	result = decode_crc((INT8U *)pppframe-9);
	      	result = decode_crc((INT8U *)pppframe-17);
	      	result = decode_crc((INT8U *)pppframe-25);
	      	result = decode_crc((INT8U *)pppframe-33);
		}
      	}
    } while(1);
 }

#ifdef		UART_EXIST
void uart_test(void) 
{
 if(!init_uart())
   {
    do{
       crc = 0; 
       }while(1);	
    } 

 suart.txbuf[0] = 0; 
 suart.txbuf[1] = 1;
 suart.txnum = 2; 
 enable_tx_uart(); 
// tx_uart = 1;
 do{
    }while(1); 
}
#endif

#ifdef		IIC_EXIST
void iic_test(void)
{
 iic_init();
 iic_reset();
 result = ee_write_byte(1,0xaa);
 result = ee_write_byte(2,0x55);
 result = ee_write_byte(3,0xcc);
 result = ee_write_byte(4,0x11);
 result = ee_read_page(1,eeedata,4);
 result = ee_read_page(1,eeedata,4);
 result = ee_read_page(1,eeedata,4);
 
 result = ee_read_byte(1,&eedata);
 result = ee_read_byte(2,&eedata);
 result = ee_read_byte(3,&eedata);
 result = ee_read_byte(4,&eedata);
} 
#endif


#ifdef		LCD_EXIST
void lcd_test(void)
{
 display_init();
// lcd_init();
 display_putline_code(linecode1,0,0,0);
 lcd_all();
 display_setcursor(1,0);
 display_sequence(0xa1a2);
 display_symbol.cursor_open = 1;
// do{
//    if(display_symbol.cursor_chang) display_cursor();
//    }while(1);
//lcd_line(12);
 init_key();
 ENABLE_INT();
 
 do{
    if(key_buf_num)
      {
       display_keychar(key_code_buf[key_buf_end]);
       key_buf_num--;
       key_buf_end++;
       if(key_buf_end >= KEY_BUF_LENGTH) key_buf_end=0;
       }
    if(display_symbol.cursor_chang) display_cursor();
    }while(1);

/*
// lcd_write_command(LCD_LINE|32,0,0);
// lcd_write_command(LCD_REVERSE_ON,0,0);
 
 put_code_lcd(linecode1,0,0);
 put_code_lcd(linecode2,0,1);
 put_code_lcd(linecode3,0,2);
 put_code_lcd(linecode4,0,3);
 put_code_lcd(linecode5,0,4);
 lcd_all();
 do{
    }while(1); 
*/
}
#endif

void bs_test(void)
{
 INT8U rqr=0,rqs=0,rqe=0,status =0;
 INT16U i = 0,numall = 0;
/* 
 buf[39] = 0xd5;
 buf[38] = 0x00;
 buf[37] = 0x0c;
 buf[36] = 0x54;
 buf[35] = 0x00;
 buf[34] = 0x00;
 buf[33] = 0x40;
 buf[32] = 0xce;
 crc = aloha_encode_crc(buf+39);
 result = decode_crc(buf + 39);
*/
/*
 make_alh();
 aloha_init(2,0xaa,1);
 aloha_tx(buf + 39,1,0,10);
 do{

    if(key_buf_num)
      {
       display_keychar(key_code_buf[key_buf_end]);
       key_buf_num--;
       key_buf_end++;
       if(key_buf_end >= KEY_BUF_LENGTH) key_buf_end=0;
       }


    if(aloha_tx_status() == FSKSTATUS_TX_IDLE)
      {
        make_alh();
      	aloha_tx(buf + 39,1,0,0);
      	}
    if(aloha_status() == FSKSTATUS_RCV_OK) 
      {
        move_to_rcvbuf();
      	result = decode_crc(rcvbuf + 39);
        move_to_getframe();
        disstru_1327(pgetframe,3);
        if(!get_frame.Type.Addr) continue;
//        if(get_frame.Type.CAT) continue;
//        if(get_frame.Type.TYPE!=0x2) continue;
        switch(get_frame.Type.TYPE)  
	      {
	      	case 0x15:		//rqr
			if(rqr == 0)
			   {
			     make_rqr_ack();
			     }	
			if(rqr == 1)
			   {
			     make_rqr_ackx();
			     }	
			if(++rqr>1) rqr=0;
			status = 0;
	      		break;

	      	case 0x10:		//rqs
			if(rqs == 0)
			   {
			     make_rqs_acki();
			     move_to_tmp();
			     make_ahy();
			     }	
			if(rqs == 1)
			   {
			     make_rqs_ackq();
			     move_to_tmp();
			     make_ahy();
			     }	
			if(rqs == 2)
			   {
			     make_rqs_ackx();
			     move_to_tmp();
			     make_ahyx();
			     }	
			if(rqs == 3)
			   {
			     make_rqs_ackv();
			     move_to_tmp();
			     make_ahyc();
			     }	
			if(++rqs>3) rqs=0;
			status = 1;
	      		break;

	      	case 0x13:		//rqt
			make_rqt_ack();
			status = 0;
	      		break;

	      	case 0x14:		//rqe
			if(rqe == 0)
			   {
			     make_rqe_acki();
			     move_to_tmp();
			     make_ahy();
			     }	
			if(rqe == 1)
			   {
			     make_rqe_ackq();
			     move_to_tmp();
			     make_ahy();
			     }	
			if(rqe == 2)
			   {
			     make_rqe_ackx();
			     move_to_tmp();
			     make_ahyx();
			     }	
			if(rqe == 3)
			   {
			     make_rqe_ackv();
			     move_to_tmp();
			     make_ahyc();
			     }	
			if(++rqe>3) rqs=0;
			status = 1;
	      		break;
	      	case 0x12:		//rqx
			make_rqx_ack();
			status = 0;
	      		break;
		default:
		        status = 0xff;
		        break;
	      	}
        if(status != 0xff)
          {
           do{
              }while(aloha_tx_status() != FSKSTATUS_TX_IDLE);
           aloha_tx(buf + 39,1,0,0);
           } 
        if(status == 1)
          {
	   move_tmpto_buf();	
           do{
              }while(aloha_tx_status() != FSKSTATUS_TX_IDLE);
           aloha_tx(buf + 39,1,0,0);
           do{
              }while(aloha_tx_status() != FSKSTATUS_TX_IDLE);
           status == 0;
           } 
      	}
    } while(1);
*/
 }

void move_to_buf(void)
{
 buf[39] = tr_frame.Buf[5];
 buf[38] = tr_frame.Buf[4];
 buf[37] = tr_frame.Buf[3];
 buf[36] = tr_frame.Buf[2];
 buf[35] = tr_frame.Buf[1];
 buf[34] = tr_frame.Buf[0];
 crc = aloha_encode_crc(pframe + 5);

 buf[33] = crc>>8;
 buf[32] = crc&0xff;
 }

void move_to_rcvbuf(void)
{
 INT8U * p;
 p = (INT8U *)&fskmt_buf;

 rcvbuf[39] = *(p-1);
 rcvbuf[38] = *(p-2);
 rcvbuf[37] = *(p-3);
 rcvbuf[36] = *(p-4);
 rcvbuf[35] = *(p-5);
 rcvbuf[34] = *(p-6);
 rcvbuf[33] = *(p-7);
 rcvbuf[32] = *(p-8);
 }

void move_to_getframe(void)
{
 get_frame.Buf[5] = rcvbuf[39];
 get_frame.Buf[4] = rcvbuf[38];
 get_frame.Buf[3] = rcvbuf[37];
 get_frame.Buf[2] = rcvbuf[36];
 get_frame.Buf[1] = rcvbuf[35];

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -