Пример #1
0
/****************************************************************************
 Function: LED_End

 Parameters: none.

 Returns
     char: SUCCESS or ERROR

 Description
     Ends the LED subsystem, turns active LED pins into inputs and turns LEDs off.

 Notes: none.

 Author: Gabriel Hugh Elkaim, 2011.12.25 01:16
 ****************************************************************************/
char LED_End(void)
{
    char i;
    dbprintf("\nShutting down the LED subsystem");
    if (!ledStatus.led_on) {
        dbprintf("\nERROR: System not initialized");
        return ERROR;
    }
    if (ledStatus.one_on) { // shut down bank one
        dbprintf("\nShutting down bank one");
        ledStatus.one_on = FALSE;
        for (i = 0; i < NUMLEDSPERBANK; i++) {
            LED_Off(i);
            LED_SetPinInput(i);
        }
    }
    if (ledStatus.two_on) { // shut down bank two
        dbprintf("\nShutting down bank two");
        ledStatus.two_on = FALSE;
        for (i = 0; i < NUMLEDSPERBANK; i++) {
            LED_Off(i+BANK2OFFSET);
            LED_SetPinInput(i+BANK2OFFSET);
        }
    }
    if (ledStatus.three_on) { // shut down bank one
        dbprintf("\nShutting down bank three");
        ledStatus.three_on = FALSE;
        for (i = 0; i < NUMLEDSPERBANK; i++) {
            LED_Off(i+BANK3OFFSET);
            LED_SetPinInput(i+BANK3OFFSET);
        }
    }
    ledStatus.led_on = FALSE;
    return SUCCESS;
}
Пример #2
0
/**
 * @Function LED_RemoveBanks(unsigned char RemoveBanks)
 * @param banks - an unsigned char with a 1 in each position to set the bank as an LED
 * @param bank - should be a bitwise OR of the #define'd LED_BANKx values.
 * @return SUCCESS or ERROR
 * @brief  adds selected banks to the system and sets them to be digital outputs
 * @note  J3 SPI Jumpers should be set in MASTER position.
 * @author Gabriel Hugh Elkaim, 2011.12.25 01:16 */
char LED_RemoveBanks(unsigned char RemoveBanks)
{
    char i;
    dbprintf("\nInitializing LED subsystem");

    if (!LEDActive) {
        dbprintf("\nError: LED subsystem not initialized\r\n");
        return ERROR;
    }

    if ((RemoveBanks == 0) || (RemoveBanks > ALL_LED_BANKS)) {
        dbprintf("%s returning ERROR with Banks outside range: %X\r\n", __FUNCTION__, RemoveBanks);
        return ERROR;
    }
    if (!(ActiveLEDBanks & RemoveBanks)) {
        dbprintf("%s Returning ERROR for pins already in state: %X \r\n", __FUNCTION__, RemoveBanks);
        return ERROR;
    }
    ActiveLEDBanks &= (~RemoveBanks);
    if (LED_BANK1 & RemoveBanks) { // shut down bank one
        dbprintf("\nShutting down bank one");
        //        ledStatus.one_on = FALSE;
        for (i = 0; i < NUMLEDSPERBANK; i++) {
            LED_Off(i);
            LED_SetPinInput(i);
        }
    }
    if (LED_BANK2 & RemoveBanks) { // shut down bank two
        dbprintf("\nShutting down bank two");
        //        ledStatus.two_on = FALSE;
        for (i = 0; i < NUMLEDSPERBANK; i++) {
            LED_Off(i + BANK2OFFSET);
            LED_SetPinInput(i + BANK2OFFSET);
        }
    }
    if (LED_BANK2 & RemoveBanks) { // shut down bank one
        dbprintf("\nShutting down bank three");
        //        ledStatus.three_on = FALSE;
        for (i = 0; i < NUMLEDSPERBANK; i++) {
            LED_Off(i + BANK3OFFSET);
            LED_SetPinInput(i + BANK3OFFSET);
        }
    }
    dbprintf("\nLED Subsystem Enabled");

    return SUCCESS;
}