If you have a PH account, you can customize your PH profile.

View \main.c

Fast Debounce V1.0

Submitted By: Graham Cole
Rating: (Not rated) (Rate It)


#include <fast_debounce.h>

void main( void )
{
    unsigned char loop;
    unsigned char passed = 1;

    //
    // Test 4 stage version.
    //

    // make input and output the same and call function so that LFSRs will be reset.

    bouncy_source    = 0x0F;
    debounced_source = 0x0F;

    fast_debounce_4_stage_lfsr();

    // make souce different.

    debounced_source = 0xAA;

    loop = 14;

    do
    {
        fast_debounce_4_stage_lfsr();

        passed = passed && ( bouncy_source != debounced_source );

    }while( --loop != 0 );

    loop = 16;

    do
    {
        fast_debounce_4_stage_lfsr();

        passed = passed && ( bouncy_source == debounced_source );

    }while( --loop != 0 );

    //
    // Test 5 stage version.
    //

    // make input and output the same and call function so that LFSRs will be reset.

    bouncy_source    = 0x0F;
    debounced_source = 0x0F;

    fast_debounce_5_stage_lfsr();

    // make souce different.

    debounced_source = 0xAA;

    loop = 30;

    do
    {
        fast_debounce_5_stage_lfsr();

        passed = passed && ( bouncy_source != debounced_source );

    }while( --loop != 0 );

    loop = 32;

    do
    {
        fast_debounce_5_stage_lfsr();

        passed = passed && ( bouncy_source == debounced_source );

    }while( --loop != 0 );

    //
    // Test 6 stage version.
    //

    // make input and output the same and call function so that LFSRs will be reset.

    bouncy_source    = 0x0F;
    debounced_source = 0x0F;

    fast_debounce_6_stage_lfsr();

    // make souce different.

    debounced_source = 0xAA;

    loop = 62;

    do
    {
        fast_debounce_6_stage_lfsr();

        passed = passed && ( bouncy_source != debounced_source );

    }while( --loop != 0 );

    loop = 64;

    do
    {
        fast_debounce_6_stage_lfsr();

        passed = passed && ( bouncy_source == debounced_source );

    }while( --loop != 0 );

    //
    // Test 4 stage counter version.
    //

    // make input and output the same and call function so that LFSRs will be reset.

    bouncy_source    = 0x0F;
    debounced_source = 0x0F;

    fast_debouce_4_stage_counter();

    // make souce different.

    debounced_source = 0xAA;

    loop = 15;

    do
    {
        fast_debouce_4_stage_counter();

        passed = passed && ( bouncy_source != debounced_source );

    }while( --loop != 0 );

    loop = 16;

    do
    {
        fast_debouce_4_stage_counter();

        passed = passed && ( bouncy_source == debounced_source );

    }while( --loop != 0 );

    do{}while(1);
}

corner
© 1996-2008 CommunityHeaven LLC. All rights reserved. Reproduction in whole or in part, in any form or medium without express written permission is prohibited.
Violators of this policy may be subject to legal action. Please read our Terms Of Use and Privacy Statement for more information.
North American business development: Nicolai Wadstrom. Publisher: Lars Hagelin.