a0ccd623c6
git-svn-id: file:///srv/dev-disk-by-uuid-17e88007-4d0c-45e0-8757-cacfcc458630/repositories/svn/Diplomarbeit@110 9fe90eed-be63-e94b-8204-d34ff4c2ff93
121 lines
5.0 KiB
C
121 lines
5.0 KiB
C
/* ---------------------------------------------------------------------------
|
|
* testpower.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:
|
|
* ---------------------------------------------------------------------------
|
|
* Version(s): 0.1, Mar 25, 2008, MMi
|
|
* Creation.
|
|
* ---------------------------------------------------------------------------
|
|
*/
|
|
|
|
/* ---------------------------------------------------------------------------
|
|
* System include files
|
|
* ---------------------------------------------------------------------------
|
|
*/
|
|
#include "lpc23xx.h"
|
|
#include "types.h"
|
|
|
|
#include "FreeRTOS.h"
|
|
#include "task.h"
|
|
/* ---------------------------------------------------------------------------
|
|
* Application include files
|
|
* ---------------------------------------------------------------------------
|
|
*/
|
|
#include "testpower.h"
|
|
#include "power.h"
|
|
#include "SerOut.h"
|
|
|
|
/* ---------------------------------------------------------------------------
|
|
* Local constant and macro definitions
|
|
* ---------------------------------------------------------------------------
|
|
*/
|
|
|
|
/* ---------------------------------------------------------------------------
|
|
* Global variable definitions
|
|
* ---------------------------------------------------------------------------
|
|
*/
|
|
#define lowerlimit5V 4800 /* Lower VCC Limit */
|
|
#define higherlimit5V 5200 /* Higher VCC Limit */
|
|
|
|
#define lowerlimit24V 23000 /* Lower 24V Limit */
|
|
#define higherlimit24V 25000 /* Higher 24V Limit */
|
|
|
|
|
|
/* ---------------------------------------------------------------------------
|
|
* Local variable definitions
|
|
* ---------------------------------------------------------------------------
|
|
*/
|
|
static UINT8 PWRTest; /* Debugable Variable, to show Bus Test Result */
|
|
/* ---------------------------------------------------------------------------
|
|
* Local function definitions
|
|
* ---------------------------------------------------------------------------
|
|
*/
|
|
|
|
BOOLEAN testpowerStart(void)
|
|
{
|
|
BOOLEAN PowerTestResult; /* BOOLEAN Variable for Test Result */
|
|
|
|
PowerTestResult = DoVoltageTest(); /* Do Power Test */
|
|
return PowerTestResult; /* Return Test Result */
|
|
}
|
|
BOOLEAN DoVoltageTest (void)
|
|
{
|
|
/* Local Variable Declaration */
|
|
BOOLEAN VTestResult = TRUE;
|
|
static UINT16 vMeasure5V; /* Debugable */
|
|
static UINT16 vMeasure24V;
|
|
|
|
PWRTest = 0x11;
|
|
|
|
/* Test for 5 V VCC Power Supply */
|
|
vMeasure5V = powerVccVoltage(); /* Read current VCC Voltage */
|
|
/* Message out Measure Value and Test Limits */
|
|
sendString (SerOutPort, TRUE, testMessage, "\t5V Powertest", NewLine,
|
|
"\tLimits (lower/higher): ");
|
|
sendString (SerOutPort, FALSE, testMessage,
|
|
ItoDStr (lowerlimit5V), devider, Dummy);
|
|
sendString (SerOutPort, FALSE, testMessage,
|
|
Dummy, Dummy, ItoDStr (higherlimit5V));
|
|
sendString (SerOutPort, TRUE, testMessage,
|
|
"\tDetected ", ItoDStr(vMeasure5V), " mV");
|
|
|
|
if ((vMeasure5V < lowerlimit5V) || (vMeasure5V > higherlimit5V))
|
|
{ /* If measured Value out of Limits */
|
|
VTestResult = FALSE; /* Set Test Result to FALSE */
|
|
PWRTest &= ~(0x01);
|
|
}
|
|
|
|
vTaskDelay (500); /* Wait for 500 ms */
|
|
|
|
/* Test for 24 V Power Supply */
|
|
vMeasure24V = powerV24Voltage(); /* Read current power supply Voltage*/
|
|
/* Message out Measure Value and Test Limits */
|
|
sendString (SerOutPort, TRUE, testMessage, "\n\r\t24V Powertest", NewLine,
|
|
"\tLimits (lower/higher): ");
|
|
sendString (SerOutPort, FALSE, testMessage,
|
|
ItoDStr (lowerlimit24V), devider, Dummy);
|
|
sendString (SerOutPort, FALSE, testMessage,
|
|
Dummy, Dummy, ItoDStr (higherlimit24V));
|
|
sendString (SerOutPort, TRUE, testMessage,
|
|
"\tDetected ", ItoDStr(vMeasure24V), " mV");
|
|
|
|
if ((vMeasure24V < lowerlimit24V) || (vMeasure24V > higherlimit24V))
|
|
{ /* If measured Value out of Limits */
|
|
VTestResult = FALSE; /* Set Test Result to FALSE */
|
|
PWRTest &= ~(0x10);
|
|
}
|
|
|
|
return VTestResult; /* Return Test Result */
|
|
}
|
|
|
|
|