Пример #1
0
int8_t vscp_check_pstorage(void)
{
    // Check if persistent storage is initialised.
    if ( ( VSCP_INITIALIZED_BYTE0_VALUE ==
                    vscp_getControlByte( VSCP_INITIALIZED_BYTE0_INDEX ) ) &&
           ( VSCP_INITIALIZED_BYTE1_VALUE ==
                    vscp_getControlByte( VSCP_INITIALIZED_BYTE1_INDEX ) ) ) {
        return TRUE;
    }

    vscp_initledfunc = VSCP_LED_BLINK1;

    // Initialise persistent storage
    vscp_init_pstorage();

    // No nickname yet.
    vscp_writeNicknamePermanent( VSCP_ADDRESS_FREE );

    // Mark persistent storage as initialised
    vscp_setControlByte( VSCP_INITIALIZED_BYTE0_INDEX,
                            VSCP_INITIALIZED_BYTE0_VALUE );
    vscp_setControlByte( VSCP_INITIALIZED_BYTE1_INDEX,
                            VSCP_INITIALIZED_BYTE1_VALUE );

    return FALSE;
}
Пример #2
0
///////////////////////////////////////////////////////////////////////////////
// vscp_check_pstorage
//
// Check control position integrity and restore EEPROM
// if invalid.
//
int08_t vscp_check_pstorage( void )
{
	// controlbyte == 01xxxxxx means initialized
	// everything else is uninitialized
	if ( VSCP_CRC_FREE != vscp_getSegmentCRC()) {
		return TRUE;
	}
	// No nickname yet.
	vscp_setNickname( VSCP_ADDRESS_FREE);
	// No segment CRC yet.
	vscp_setSegmentCRC( VSCP_CRC_FREE);
	vscp_setControlByte( VSCP_CONTROL_STARTUP);		// Initial startup, write allowed

	return FALSE;
}
Пример #3
0
int8_t vscp_check_pstorage(void)
{
    // controlbyte == 01xxxxxx means initialized
    // everything else is uninitialized
    if ((vscp_getSegmentCRC() & 0xc0) == 0x40) {
        return TRUE;
    }

    // No nickname yet.
    vscp_writeNicknamePermanent(0xff);

    // No segment CRC yet.
    vscp_setSegmentCRC(0x00);

    // Initial startup
    // write allowed
    vscp_setControlByte(0xA0);

    return FALSE;
}
/*!
 * @brief verify functionality of the custom defined vscp functions
 *        vscp_firmware.h @ line 457
 */
void test_vscp_externals(){

	uint8_t FlashValue8; 		   /*! gets an 8-bit vscp data field from permanent storage */
	uint8_t val;				   /*! assign a value to write to buffer -> permanent storage */

	printf("Testing vscp_functions\r\n");

	val = 0x11;
	vscp_writeNicknamePermanent(val);
	FlashValue8 = vscp_readNicknamePermanent();
	printf("Read %d dec, %x hex\r\n", FlashValue8, FlashValue8);

	val = 0x22;
	vscp_setSegmentCRC(val);
	FlashValue8 = vscp_getSegmentCRC();
	printf("Read %d dec, %x hex\r\n", FlashValue8, FlashValue8);

	val = 0x33;
	vscp_setControlByte(val);
	FlashValue8 = vscp_getControlByte();
	printf("Read %d dec, %x hex\r\n", FlashValue8, FlashValue8);
}