/**************************************************************************** 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; }
/** * @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; }