123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- /**********************************************************************
- * © 2010 Microchip Technology Inc.
- *
- * FileName: SSL_CpuRegisterTest.c
- * Dependencies: Header (.h) files if applicable, see below
- * Processor: PIC16FXXX
- * Compiler: C18 v3.41
- *
- * SOFTWARE LICENSE AGREEMENT:
- * Microchip Technology Inc. (“Microchip”) licenses this software to you
- * solely for use with Microchip PIC® microcontroller
- * products. The software is owned by Microchip and is protected under
- * applicable copyright laws. All rights reserved.
- *
- * SOFTWARE IS PROVIDED “AS IS.” MICROCHIP EXPRESSLY DISCLAIMS ANY
- * WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. IN NO EVENT SHALL MICROCHIP
- * BE LIABLE FOR ANY INCIDENTAL, SPECIAL, INDIRECT OR CONSEQUENTIAL
- * DAMAGES, LOST PROFITS OR LOST dataC, HARM TO YOUR EQUIPMENT, COST OF
- * PROCUREMENT OF SUBSTITUTE GOODS, TECHNOLOGY OR SERVICES, ANY CLAIMS
- * BY THIRD PARTIES (INCLUDING BUT NOT LIMITED TO ANY DEFENSE THEREOF),
- * ANY CLAIMS FOR INDEMNITY OR CONTRIBUTION, OR OTHER SIMILAR COSTS.
- *
- * REVISION HISTORY:
- *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- * Author Date Comments on this revision
- *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- *CT 09/15/2008 First release of source file
- *Mike Cahill 11/11/2010 Updated for HI-TECH v9.80
- *MVL 02/22/2011 Modified for HI-TECH v9.80 & v9.81
- *VR 06/22/2012 Modified for C18 v3.41
- *
- *Version 1.03
- *
- *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- * ADDITIONAL NOTES:
- *
- **********************************************************************/
- #include "SSL_CpuRegisterTest.h"
- volatile uint8_t tempWF, tempREG;
- /********************************************************************************************
- * Function Name: SSL_8bit_CPU_RegisterTest
- *
- * Description : The "SSL_8bit_CPU_RegisterTest" function tests the CPU W register for stuck up
- * faults, insuring that bits in the registers are not stuck at a value. This test can be done
- * by successively doing a write, read and check of 0x55 & 0xAA value into the W register.
- * The Register is saved into RAM before the test is performed and restored after the test is done.
- *
- * Input : None
- *
- * Returns : return value = 0 Test FAIL
- * return value = 1 Test PASS
- *********************************************************************************************/
- uint16_t SSL_CPU_RegisterTest( )
- {
- uint8_t cpuTestResult;
- // save the original value of W
- _asm
- MOVWF tempWF,1
-
-
- /* Test WREG with 0x55 */
- MOVLW 0x55
- MOVWF tempREG,1
- _endasm
- cpuTestResult= Test_Register(tempREG, 0x55);
- if(cpuTestResult == CPU_REGISTER_TEST_FAIL)
- {
- _asm
- MOVF tempWF,0,1
- _endasm
- return CPU_REGISTER_TEST_FAIL;
- }
- // Test WREG with 0xAA
- _asm
- MOVLW 0xAA
- MOVWF tempREG,1
- _endasm
- cpuTestResult= Test_Register(tempREG, 0xAA);
- if(cpuTestResult==CPU_REGISTER_TEST_FAIL)
- {
- _asm
- MOVF tempWF,0,1
- _endasm
- return CPU_REGISTER_TEST_FAIL;
- }
- // POP the W-reg before return
- _asm
- MOVF tempWF,0,1
- _endasm
- //cpuTestResult = CPU_REGISTER_TEST_PASS ;
- return CPU_REGISTER_TEST_PASS;
- }
- uint16_t Test_Register(uint8_t tempREG, uint8_t value)
- {
- if (tempREG != value)
- {
- return CPU_REGISTER_TEST_FAIL;
- }
- else
- {
- return CPU_REGISTER_TEST_PASS;
- }
- }
|