/******************************************************************************* * Function Name : LED_On * Description : Turn on LED * Input : ucLED * Return : None. *******************************************************************************/ void LED_On(uint8_t ucLED) { if (ucLED & LED1) { GPIO_WriteDataBit(GPIO_PG, GPIO_BIT_0, GPIO_BIT_VALUE_1); } if (ucLED & LED2) { GPIO_WriteDataBit(GPIO_PG, GPIO_BIT_1, GPIO_BIT_VALUE_1); } }
/************************************************************************* * Function Name: LED_Init * Parameters:None * * Return:None * * Description: Init LED ports * *************************************************************************/ void LED_Init() { /*Set PG bit0~3 output and turn off all leds*/ GPIO_SetOutput(GPIO_PG, GPIO_BIT_0); GPIO_SetOutput(GPIO_PG, GPIO_BIT_1); GPIO_SetOutput(GPIO_PG, GPIO_BIT_2); GPIO_SetOutput(GPIO_PG, GPIO_BIT_3); GPIO_WriteDataBit(GPIO_PG, GPIO_BIT_0, GPIO_BIT_VALUE_0); GPIO_WriteDataBit(GPIO_PG, GPIO_BIT_1, GPIO_BIT_VALUE_0); GPIO_WriteDataBit(GPIO_PG, GPIO_BIT_2, GPIO_BIT_VALUE_0); GPIO_WriteDataBit(GPIO_PG, GPIO_BIT_3, GPIO_BIT_VALUE_0); }
/******************************************************************************* * Function Name : SW_Get * Description : Get SW Value * Input : SW (choose from SW0 ~ SW7). * Return : SW value. *******************************************************************************/ uint8_t SW_Get(uint8_t sw) { uint8_t tmp = 0U; if (sw < 4 ) { GPIO_WriteDataBit(GPIO_PJ, GPIO_BIT_2, GPIO_BIT_VALUE_0); }else{ GPIO_WriteDataBit(GPIO_PJ, GPIO_BIT_2, GPIO_BIT_VALUE_1); } switch (sw) { case SW0: case SW4: if (GPIO_ReadDataBit(GPIO_PI, GPIO_BIT_0) == 1U) { tmp = 1U; } else { /*do nothing */ } break; case SW1: case SW5: if (GPIO_ReadDataBit(GPIO_PI, GPIO_BIT_1) == 1U) { tmp = 1U; } else { /*do nothing */ } break; case SW2: case SW6: if (GPIO_ReadDataBit(GPIO_PI, GPIO_BIT_2) == 1U) { tmp = 1U; } else { /*do nothing */ } break; case SW3: case SW7: if (GPIO_ReadDataBit(GPIO_PI, GPIO_BIT_3) == 1U) { tmp = 1U; } else { /*do nothing */ } break; default: break; } return tmp; }
/*! \brief LED Toggle * * Toggle an LED * * @param led: LED Number * * @retval None */ void LED_Toggle(unsigned char led) { #ifndef DEBUG switch(led) { case LED_NO_0: GPIO_WriteDataBit(GPIO_PB, GPIO_BIT_3, (~GPIO_ReadDataBit(GPIO_PB, GPIO_BIT_3) & 0x01)); break; case LED_NO_1: GPIO_WriteDataBit(GPIO_PB, GPIO_BIT_4, (~GPIO_ReadDataBit(GPIO_PB, GPIO_BIT_4) & 0x01)); break; case LED_NO_2: GPIO_WriteDataBit(GPIO_PB, GPIO_BIT_5, (~GPIO_ReadDataBit(GPIO_PB, GPIO_BIT_5) & 0x01)); break; case LED_NO_3: GPIO_WriteDataBit(GPIO_PB, GPIO_BIT_6, (~GPIO_ReadDataBit(GPIO_PB, GPIO_BIT_6) & 0x01)); break; } #endif /* DEBUG */ }
/*! \brief LED set state * * Set the state of an LED * * @param led: LED Number * @param state: State to set * * @retval None */ void LED_SetState(unsigned char led, unsigned char state) { #ifndef DEBUG switch(led) { case LED_NO_0: GPIO_WriteDataBit(GPIO_PB, GPIO_BIT_3, (~state)&0x01 ); break; case LED_NO_1: GPIO_WriteDataBit(GPIO_PB, GPIO_BIT_4, (~state)&0x01); break; case LED_NO_2: GPIO_WriteDataBit(GPIO_PB, GPIO_BIT_5, (~state)&0x01); break; case LED_NO_3: GPIO_WriteDataBit(GPIO_PB, GPIO_BIT_6, (~state)&0x01); break; } #endif /* DEBUG */ }