Added Software projects
git-svn-id: file:///srv/dev-disk-by-uuid-17e88007-4d0c-45e0-8757-cacfcc458630/repositories/svn/Diplomarbeit@55 9fe90eed-be63-e94b-8204-d34ff4c2ff93
This commit is contained in:
@@ -0,0 +1,216 @@
|
||||
/* ---------------------------------------------------------------------------
|
||||
* testuart2.c (c) 2008 Micro-key bv
|
||||
* ---------------------------------------------------------------------------
|
||||
* Micro-key bv
|
||||
* Industrieweg 28, 9804 TG Noordhorn
|
||||
* Postbus 92, 9800 AB Zuidhorn
|
||||
* The Netherlands
|
||||
* Tel: +31 594 503020
|
||||
* Fax: +31 594 505825
|
||||
* Email: support@microkey.nl
|
||||
* Web: www.microkey.nl
|
||||
* ---------------------------------------------------------------------------
|
||||
* Description:
|
||||
* Contains BUS System Test Functions
|
||||
* ---------------------------------------------------------------------------
|
||||
* Version(s): 0.1, Mar 10, 2008, MMi
|
||||
* Creation.
|
||||
* ---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* APPLICATION NOTE FOR BUS TEST!!!!
|
||||
*
|
||||
* THIS TEST ONLY WILL WORK IF DEVICE IS RUNNING IN A SINGLE MODE. IF DEVICE
|
||||
* IS INITIALIZED WITH BUS PROTOCOL (ANYWAY IF MASTER OR SLAVE), THIS TEST
|
||||
* WILL CAUSE THE HARDWARE TO CRASH
|
||||
*/
|
||||
|
||||
|
||||
/* ---------------------------------------------------------------------------
|
||||
* System include files
|
||||
* ---------------------------------------------------------------------------
|
||||
*/
|
||||
#include "lpc23xx.h"
|
||||
#include "types.h"
|
||||
|
||||
#include "FreeRTOS.h"
|
||||
#include "task.h"
|
||||
/* ---------------------------------------------------------------------------
|
||||
* Application include files
|
||||
* ---------------------------------------------------------------------------
|
||||
*/
|
||||
#include "testBUS.h"
|
||||
#include "bus.h"
|
||||
#include "uart2.h"
|
||||
#include "uart3.h"
|
||||
#include "SerOut.h"
|
||||
#include "taskfunctions.h"
|
||||
#include "ledfunctions.h"
|
||||
|
||||
/* ---------------------------------------------------------------------------
|
||||
* Local constant and macro definitions
|
||||
* ---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* ---------------------------------------------------------------------------
|
||||
* Global variable definitions
|
||||
* ---------------------------------------------------------------------------
|
||||
*/
|
||||
/* ---------------------------------------------------------------------------
|
||||
* Local variable definitions
|
||||
* ---------------------------------------------------------------------------
|
||||
*/
|
||||
char BUS1Buffer[20] = " 'BUSTEST first' "; /* first Teststring */
|
||||
char BUS2Buffer[20] = " 'BUSTEST second' "; /* second Teststring */
|
||||
|
||||
/* ---------------------------------------------------------------------------
|
||||
* Local function definitions
|
||||
* ---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
extern void onUart2TxFinished();
|
||||
extern void onUart3TxFinished();
|
||||
|
||||
|
||||
BOOLEAN testbusStart(void)
|
||||
{
|
||||
/*Local Variable Declaration */
|
||||
BOOLEAN BUSTestResult = FALSE;
|
||||
BOOLEAN BUSTest11 = FALSE;
|
||||
BOOLEAN BUSTest12 = FALSE;
|
||||
BOOLEAN BUSTest21 = FALSE;
|
||||
BOOLEAN BUSTest22 = FALSE;
|
||||
BOOLEAN receive;
|
||||
UINT8 buffer;
|
||||
|
||||
|
||||
BUSTest11 = DoBUS1Test(); /* Test Bus1 */
|
||||
BUSTest12 = DoBUS2Test(); /* Test Bus2 */
|
||||
|
||||
|
||||
sendString (SerOutPort, TRUE, noteMessage, /* Send Text notification */
|
||||
NewLine, "\tSWITCH BUS CONNECTOR AND PRESS ENTER", NewLine);
|
||||
|
||||
do /* do-while loop for String input */
|
||||
{
|
||||
receive = serGet(SerOutPort, &buffer);
|
||||
} while (buffer != 13); /*Read input until ENTER-Key */
|
||||
|
||||
BUSTest21 = DoBUS1Test(); /* Test Bus1 */
|
||||
BUSTest22 = DoBUS2Test(); /* Test Bus2 */
|
||||
|
||||
if ((BUSTest11 == TRUE) && (BUSTest12 == TRUE)
|
||||
&&(BUSTest21 == TRUE) && (BUSTest22 == TRUE))
|
||||
{ /* If both Bustests passed */
|
||||
BUSTestResult = TRUE; /* set Test Result to TRUE */
|
||||
}
|
||||
|
||||
return BUSTestResult; /* Return Test Result */
|
||||
}
|
||||
|
||||
BOOLEAN DoBUS1Test (void)
|
||||
{
|
||||
/* Local Variable Declaration */
|
||||
BOOLEAN Uart2TestResult = TRUE;
|
||||
UINT16 B1received_int = 0;
|
||||
UINT16 B1send_int = 0;
|
||||
UINT8 B1receiveBuffer[50];
|
||||
|
||||
|
||||
sendString (SerOutPort, TRUE, testMessage,
|
||||
"\tWrite String ", BUS1Buffer, " on BUS1... ");
|
||||
busWrite ( BUS1, sizeof (BUS1Buffer), (UINT8 *) BUS1Buffer);
|
||||
/* Send Teststring on Bus1 */
|
||||
vTaskDelay (500); /* Wait to InputRegister to be ready*/
|
||||
B1send_int = sizeof (BUS1Buffer); /* calculate Length of Teststring */
|
||||
B1received_int = busRead (BUS2, (UINT8 *)B1receiveBuffer);
|
||||
/* Read Teststring on Bus2 */
|
||||
sendString (SerOutPort, TRUE, testMessage,
|
||||
"\tRead ", (char *) B1receiveBuffer, " on BUS2");
|
||||
/* Message out received String */
|
||||
if (B1send_int != B1received_int) /* If received String is a fault */
|
||||
{
|
||||
Uart2TestResult = FALSE; /* Set Bus1 TestResult to FALSE */
|
||||
}
|
||||
return Uart2TestResult; /* Return Test Result */
|
||||
}
|
||||
|
||||
BOOLEAN DoBUS2Test (void)
|
||||
{
|
||||
/* See "DoBUS1Test" for comments */
|
||||
|
||||
BOOLEAN Uart3TestResult = TRUE;
|
||||
UINT16 B2received_int = 0;
|
||||
UINT16 B2send_int = 0;
|
||||
UINT8 B2receiveBuffer[50];
|
||||
|
||||
sendString (SerOutPort, TRUE, testMessage,
|
||||
"\tWrite String ", BUS2Buffer, " on BUS2... ");
|
||||
busWrite ( BUS2, sizeof (BUS2Buffer), (UINT8 *) BUS2Buffer);
|
||||
vTaskDelay( 500 );
|
||||
B2send_int = sizeof (BUS2Buffer);
|
||||
B2received_int = busRead (BUS1, (UINT8 *)B2receiveBuffer);
|
||||
sendString (SerOutPort, TRUE, testMessage,
|
||||
"\tRead ", (char *) B2receiveBuffer, " on BUS1");
|
||||
|
||||
if (B2send_int != B2received_int)
|
||||
{
|
||||
Uart3TestResult = FALSE;
|
||||
}
|
||||
return Uart3TestResult;
|
||||
}
|
||||
|
||||
BOOLEAN Uart2LoopBackTest (void)
|
||||
{
|
||||
/* UART2 is in LoopBack by forcing it to receive its own Transmission */
|
||||
FIO4CLR |= (1 << 1); /* Enable Receiver */
|
||||
FIO4SET |= (1 << 0); /* Enable Transmitter */
|
||||
|
||||
/* Local Variable Declaration */
|
||||
BOOLEAN Result = TRUE; /* LoopBack Test Result */
|
||||
char EBBuffer[10] = "placed"; /* Teststring */
|
||||
UINT16 EBsend_int = 0;
|
||||
UINT16 EBreceived_int = 0;
|
||||
UINT8 EBreceiveBuffer[10];
|
||||
|
||||
uart2Write( (char *)EBBuffer, sizeof(EBBuffer)); /* Write Teststring */
|
||||
EBsend_int = sizeof (EBBuffer); /* Calculate Length */
|
||||
vTaskDelay (500); /* Wait to InputRegister to be ready*/
|
||||
EBreceived_int = busRead (BUS2, (UINT8 *)EBreceiveBuffer);
|
||||
/* Read/Delete received String */
|
||||
EBreceived_int = busRead (BUS1, (UINT8 *)EBreceiveBuffer);
|
||||
/* Read/Delete received String */
|
||||
if (EBsend_int != EBreceived_int) /* If received String is a fault */
|
||||
{
|
||||
Result = FALSE; /* Set Result to FALSE */
|
||||
}
|
||||
|
||||
onUart2TxFinished(); /* Switch back to receive Mode */
|
||||
return Result; /* Return Result */
|
||||
}
|
||||
|
||||
BOOLEAN Uart3LoopBackTest (void)
|
||||
{
|
||||
/* UART3 is in LoopBack by forcing it to receive its own Transmission */
|
||||
FIO4CLR |= (1 << 3); /* Enable Receiver */
|
||||
FIO4SET |= (1 << 2); /* Enable Transmitter */
|
||||
|
||||
BOOLEAN Result = TRUE;
|
||||
|
||||
char EBBuffer[10] = "placed";
|
||||
UINT16 EBsend_int = 0;
|
||||
UINT16 EBreceived_int = 0;
|
||||
UINT8 EBreceiveBuffer[10];
|
||||
|
||||
uart3Write( (char *)EBBuffer, sizeof(EBBuffer));
|
||||
EBsend_int = sizeof (EBBuffer);
|
||||
vTaskDelay (500);
|
||||
EBreceived_int = busRead (BUS1, (UINT8 *)EBreceiveBuffer);
|
||||
EBreceived_int = busRead (BUS2, (UINT8 *)EBreceiveBuffer);
|
||||
if (EBsend_int != EBreceived_int)
|
||||
{
|
||||
Result = FALSE;
|
||||
}
|
||||
onUart3TxFinished();
|
||||
return Result;
|
||||
}
|
||||
Reference in New Issue
Block a user