📄 test_api.c
字号:
/*C**************************************************************************
* NAME: test_api.c
*----------------------------------------------------------------------------
* Copyright (c) 2003 Atmel.
*----------------------------------------------------------------------------
* RELEASE: c5131-usb-flash-api-1_0_5
* REVISION: 1.2
*----------------------------------------------------------------------------
* PURPOSE:
*
*****************************************************************************/
/*_____ I N C L U D E S ____________________________________________________*/
#include "stdio.h"
#include "config.h"
/*_____ M A C R O S ________________________________________________________*/
/*_____ D E F I N I T I O N ________________________________________________*/
Uchar xdata tab[256];
/*_____ D E C L A R A T I O N ______________________________________________*/
/*F**************************************************************************
* NAME: uart_init
*----------------------------------------------------------------------------
* PARAMS:
*----------------------------------------------------------------------------
* PURPOSE:
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/
void uart_init (void)
{
SCON = 0x50;
TMOD = TMOD | 0x20 ; /* Timer1 in mode 2 & not gated */
// TH1 = 0xF3; /* 2400 bauds at 12 MHZ */
// TL1 = 0xF3;
TH1 = 0xEE; /* 2400 bauds at 16 MHZ */
TL1 = 0xEE;
PCON = PCON & 0X80;
TCON |= 0x40;
TI=1;
}
/*F**************************************************************************
* NAME: bin_to_asc
*----------------------------------------------------------------------------
* PARAMS:
* to_convert: byte to parse in ascii
*----------------------------------------------------------------------------
* PURPOSE:
* This function return the ascii value
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/
Uchar bin_to_ascii (Uchar to_convert)
{
Uchar convert;
if ((to_convert >= 0) &&
(to_convert <= 9) )
{
convert = to_convert + 0x30;
}
else
{
convert = to_convert + 0x37;
}
return (convert);
}
/*F**************************************************************************
* NAME: tx_data
*----------------------------------------------------------------------------
* PARAMS:
* data_to_tx: byte to transmit on the line
*----------------------------------------------------------------------------
* PURPOSE:
* This function send on UART the value
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/
void tx_data (Uchar data_to_tx)
{
while(!TI);
TI = 0;
SBUF = data_to_tx;
}
/*F**************************************************************************
* NAME: send_byte_ascii
*----------------------------------------------------------------------------
* PARAMS:
* byte_to_tx: byte to send on UART in ascii
*----------------------------------------------------------------------------
* PURPOSE:
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/
void send_byte_ascii(Uchar byte_to_tx)
{
Uchar data_to_tx;
data_to_tx = bin_to_ascii( byte_to_tx >> 4);
tx_data(data_to_tx);
data_to_tx = bin_to_ascii( byte_to_tx & 0x0F);
tx_data(data_to_tx);
}
/*F**************************************************************************
* NAME: send_cr_lf
*----------------------------------------------------------------------------
* PARAMS:
*----------------------------------------------------------------------------
* PURPOSE:
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/
void send_cr_lf(void)
{
tx_data(0x0D);
tx_data(0x0A);
}
/*F**************************************************************************
* NAME: main
*----------------------------------------------------------------------------
* PARAMS:
*----------------------------------------------------------------------------
* PURPOSE:
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*----------------------------------------------------------------------------
* REQUIREMENTS:
*****************************************************************************/
void main (void)
{
Uint16 cpt;
Uchar value;
Uchar error;
uart_init();
error = 0;
send_cr_lf();
send_cr_lf();
printf(" ****************************");
send_cr_lf();
printf(" * c5131 USB Flash API Test *");
send_cr_lf();
printf(" ****************************");
send_cr_lf();
send_cr_lf();
/*---- Test BSB ------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/
printf("BSB test:");
send_cr_lf();
printf("---------");
send_cr_lf();
// Read BSB
printf("BSB initial value = ");
value = __api_rd_BSB ();
send_byte_ascii(value);
send_cr_lf();
send_cr_lf();
// Write BSB
printf("Write BSB = 0x55");
value = __api_wr_BSB (0x55);
send_cr_lf();
// Read BSB
printf("BSB = ");
value = __api_rd_BSB ();
send_byte_ascii(value);
if (value != 0x55)
{
printf(" - ERROR WRITE BSB");
error = 1;
}
send_cr_lf();
// Write BSB
printf("Write BSB = 0xFF");
value = __api_wr_BSB (0xFF);
send_cr_lf();
// Read BSB
printf("BSB = ");
value = __api_rd_BSB ();
send_byte_ascii(value);
if (value != 0xFF)
{
printf(" - ERROR WRITE BSB");
error = 1;
}
send_cr_lf();
send_cr_lf();
/*---- Test SBV ------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/
printf("SBV test:");
send_cr_lf();
printf("---------");
send_cr_lf();
// Read SBV
printf("SBV initial value = ");
value = __api_rd_SBV ();
send_byte_ascii(value);
send_cr_lf();
send_cr_lf();
// Write SBV
printf("Write SBV = 0xAA");
value = __api_wr_SBV (0xAA);
send_cr_lf();
// Read SBV
printf("SBV = ");
value = __api_rd_SBV ();
if (value != 0xAA)
{
printf(" - ERROR WRITE SBV");
error = 1;
}
send_byte_ascii(value);
send_cr_lf();
// Erase SBV
printf("Erase SBV");
value = __api_erase_SBV ();
send_cr_lf();
// Read SBV
printf("SBV = ");
value = __api_rd_SBV ();
if (value != 0xFF)
{
printf(" - ERROR ERASE SBV");
error = 1;
}
send_byte_ascii(value);
send_cr_lf();
send_cr_lf();
/*---- Test SSB ------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/
printf("SSB test:");
send_cr_lf();
printf("---------");
send_cr_lf();
// Read SSB
printf("SSB initial value = ");
value = __api_rd_SSB ();
send_byte_ascii(value);
send_cr_lf();
send_cr_lf();
// Write SSB
printf("Write SSB = no_security");
value = __api_wr_SSB (NO_SECURITY);
send_cr_lf();
// Read SSB
printf("SSB = ");
value = __api_rd_SSB ();
send_byte_ascii(value);
if (value != NO_SECURITY)
{
printf(" - ERROR WRITE SSB no security");
error = 1;
}
send_cr_lf();
// Write SSB
printf("Write SSB = wr_security");
value = __api_wr_SSB (WR_SECURITY);
send_cr_lf();
// Read SSB
printf("SSB = ");
value = __api_rd_SSB ();
send_byte_ascii(value);
if (value != WR_SECURITY)
{
printf(" - ERROR WRITE SSB write security");
error = 1;
}
send_cr_lf();
// Write SSB
printf("Write SSB = rd_wr_security");
value = __api_wr_SSB (RD_WR_SECURITY);
send_cr_lf();
// Read SSB
printf("SSB = ");
value = __api_rd_SSB ();
send_byte_ascii(value);
if (value != RD_WR_SECURITY)
{
printf(" - ERROR WRITE SSB read-write security");
error = 1;
}
send_cr_lf();
// Write SSB
printf("Write SSB = no_security");
value = __api_wr_SSB (NO_SECURITY);
send_cr_lf();
// Read SSB
printf("SSB = ");
value = __api_rd_SSB ();
send_byte_ascii(value);
if (value != NO_SECURITY)
{
printf(" - ERROR WRITE SSB no security");
error = 1;
}
send_cr_lf();
send_cr_lf();
/*---- Test EB ------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/
printf("EB test:");
send_cr_lf();
printf("--------");
send_cr_lf();
// Read EB
printf("EB initial value = ");
value = __api_rd_EB ();
send_byte_ascii(value);
send_cr_lf();
send_cr_lf();
// Write EB
printf("Write EB = 5A");
value = __api_wr_EB (0x5A);
send_cr_lf();
// Read EB
printf("EB = ");
value = __api_rd_EB ();
send_byte_ascii(value);
if (value != 0x5A)
{
printf(" - ERROR WRITE EB");
error = 1;
}
send_cr_lf();
// Write EB
printf("Write EB = FF");
value = __api_wr_EB (0xFF);
send_cr_lf();
// Read EB
printf("EB = ");
value = __api_rd_EB ();
send_byte_ascii(value);
if (value != 0xFF)
{
printf(" - ERROR WRITE EB");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -