Index: firmware/App/Drivers/CPLD.c =================================================================== diff -u -rea562263f55f20589a8512da8c00be33a8f239b5 -r216bd924f989182e648ee5f33f4c91c43ac438ac --- firmware/App/Drivers/CPLD.c (.../CPLD.c) (revision ea562263f55f20589a8512da8c00be33a8f239b5) +++ firmware/App/Drivers/CPLD.c (.../CPLD.c) (revision 216bd924f989182e648ee5f33f4c91c43ac438ac) @@ -26,6 +26,9 @@ #define OFF_REQUEST_GIO_PORT_PIN 0U #define WD_PET_GIO_PORT_PIN 1U #define WD_EXP_GIO_PORT_PIN 2U +#define LAMP_GRN_SPI5_PORT_MASK 0x00000200 // (CLK(100) - re-purposed as output GPIO) +#define LAMP_BLU_SPI5_PORT_MASK 0x00010000 // (SIMO[0](99) - re-purposed as output GPIO) +#define LAMP_RED_SPI5_PORT_MASK 0x01000000 // (SOMI[0](98) - re-purposed as output GPIO) // CPLD pin I/O macros #define GET_WD_EXP() ( PIN_SIGNAL_STATE_T )( gioGetBit( gioPORTB, WD_EXP_GIO_PORT_PIN ) ) @@ -35,6 +38,13 @@ #define CLR_WD_PET() gioSetBit( gioPORTB, WD_PET_GIO_PORT_PIN, PIN_SIGNAL_LOW ) +#define SET_GREEN() {mibspiREG5->PC3 |= LAMP_GRN_SPI5_PORT_MASK;} +#define CLR_GREEN() {mibspiREG5->PC3 &= ~LAMP_GRN_SPI5_PORT_MASK;} +#define SET_BLUE() {mibspiREG5->PC3 |= LAMP_BLU_SPI5_PORT_MASK;} +#define CLR_BLUE() {mibspiREG5->PC3 &= ~LAMP_BLU_SPI5_PORT_MASK;} +#define SET_RED() {mibspiREG5->PC3 |= LAMP_RED_SPI5_PORT_MASK;} +#define CLR_RED() {mibspiREG5->PC3 &= ~LAMP_RED_SPI5_PORT_MASK;} + #ifdef RM46_EVAL_BOARD_TARGET // for RM46 eval board, user button B uses the MIBSPI1_nCS[4] pin, so need to re-purpose that pin as GPIO to see the button #define USER_BUTTON_MASK 0x00000010 // (nCS[4] @@ -78,6 +88,11 @@ { // initialize watchdog pet output low (inactive) CLR_WD_PET(); + + // initialize alarm lamp color LED outputs low (off) + CLR_GREEN(); + CLR_RED(); + CLR_BLUE(); } /************************************************************************* @@ -111,3 +126,68 @@ return level; } +/************************************************************************* + * @brief setCPLDLampGreen + * The setCPLDLampGreen function sets the alarm lamp green signal to CPLD \n + * to given level. + * @details + * Inputs : none + * Outputs : alarm lamp green signal set to given level. + * @param level : LOW or HIGH + * @return none + *************************************************************************/ +void setCPLDLampGreen( PIN_SIGNAL_STATE_T level ) +{ + if ( level == PIN_SIGNAL_HIGH ) + { + SET_GREEN(); + } + else + { + CLR_GREEN(); + } +} + +/************************************************************************* + * @brief setCPLDLampBlue + * The setCPLDLampBlue function sets the alarm lamp blue signal to CPLD \n + * to given level. + * @details + * Inputs : none + * Outputs : alarm lamp blue signal set to given level. + * @param level : LOW or HIGH + * @return none + *************************************************************************/ +void setCPLDLampBlue( PIN_SIGNAL_STATE_T level ) +{ + if ( level == PIN_SIGNAL_HIGH ) + { + SET_BLUE(); + } + else + { + CLR_BLUE(); + } +} + +/************************************************************************* + * @brief setCPLDLampRed + * The setCPLDLampRed function sets the alarm lamp red signal to CPLD \n + * to given level. + * @details + * Inputs : none + * Outputs : alarm lamp red signal set to given level. + * @param level : LOW or HIGH + * @return none + *************************************************************************/ +void setCPLDLampRed( PIN_SIGNAL_STATE_T level ) +{ + if ( level == PIN_SIGNAL_HIGH ) + { + SET_RED(); + } + else + { + CLR_RED(); + } +}