digital RGB colors- Example

/* Example code made using IAR workbench with TivaWare for the Tiva TM4C123 launchpad It's an example with simple digital output and inputs. When you press the left buttonon the launchpad it cycles the combinations of colors of a RGB LED. red->purple->blue->light blue->green->yellow->red, and back to purple. Luís Afonso*/#include <stdint.h>#include <stdbool.h>#include "inc/hw_types.h"#include "inc/hw_gpio.h"#include "driverlib/pin_map.h"#include "driverlib/sysctl.c"#include "driverlib/sysctl.h"#include "driverlib/gpio.c"#include "driverlib/gpio.h"#define LEDbase GPIO_PORTF_BASE#define LEDred GPIO_PIN_1#define LEDblue GPIO_PIN_2#define LEDgreen GPIO_PIN_3int main(){ SysCtlClockSet(SYSCTL_SYSDIV_2_5|SYSCTL_USE_PLL|SYSCTL_OSC_MAIN|SYSCTL_XTAL_16MHZ); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); SysCtlDelay(3); GPIOPinTypeGPIOOutput(LEDbase, LEDred|LEDblue|LEDgreen); GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, GPIO_PIN_4); GPIOPadConfigSet(GPIO_PORTF_BASE,GPIO_PIN_4,GPIO_STRENGTH_2MA,GPIO_PIN_TYPE_STD_WPU); uint32_t value = GPIOPinRead(GPIO_PORTF_BASE,GPIO_PIN_4); //================Turn on red======================= GPIOPinWrite(LEDbase,LEDred, LEDred); //Wait for a button press do{ value = GPIOPinRead(GPIO_PORTF_BASE,GPIO_PIN_4); } while ((value&GPIO_PIN_4)!=0); //Wait for the button to be let go do{ value = GPIOPinRead(GPIO_PORTF_BASE,GPIO_PIN_4); } while ((value&GPIO_PIN_4)==0); //======================================= while(1){ //==================Get purple color======================= //======================Turn on blue================= GPIOPinWrite(LEDbase,LEDblue, LEDblue); do{ value = GPIOPinRead(GPIO_PORTF_BASE,GPIO_PIN_4); } while ((value&GPIO_PIN_4)!=0); do{ value = GPIOPinRead(GPIO_PORTF_BASE,GPIO_PIN_4); } while ((value&GPIO_PIN_4)==0); //==================================================== //=================Get blue color========================== //======================Turn off red================= GPIOPinWrite(LEDbase,LEDred, 0); do{ value = GPIOPinRead(GPIO_PORTF_BASE,GPIO_PIN_4); } while ((value&GPIO_PIN_4)!=0); do{ value = GPIOPinRead(GPIO_PORTF_BASE,GPIO_PIN_4); } while ((value&GPIO_PIN_4)==0); //=================================================== //====================Get light blue color================== //========================Turn on green=============== GPIOPinWrite(LEDbase,LEDgreen, LEDgreen); do{ value = GPIOPinRead(GPIO_PORTF_BASE,GPIO_PIN_4); } while ((value&GPIO_PIN_4)!=0); do{ value = GPIOPinRead(GPIO_PORTF_BASE,GPIO_PIN_4); } while ((value&GPIO_PIN_4)==0); //==================================================== //=====================Get green color================ //======================Turn off blue================= GPIOPinWrite(LEDbase,LEDblue, 0); do{ value = GPIOPinRead(GPIO_PORTF_BASE,GPIO_PIN_4); } while ((value&GPIO_PIN_4)!=0); do{ value = GPIOPinRead(GPIO_PORTF_BASE,GPIO_PIN_4); } while ((value&GPIO_PIN_4)==0); //==================================================== //===============Get yellow color=================== //================Turn on Red======================= GPIOPinWrite(LEDbase,LEDred, LEDred); do{ value = GPIOPinRead(GPIO_PORTF_BASE,GPIO_PIN_4); } while ((value&GPIO_PIN_4)!=0); do{ value = GPIOPinRead(GPIO_PORTF_BASE,GPIO_PIN_4); } while ((value&GPIO_PIN_4)==0); //==================================================== //====================Get red color=================== //======================Turn off green================= GPIOPinWrite(LEDbase,LEDgreen, 0); do{ value = GPIOPinRead(GPIO_PORTF_BASE,GPIO_PIN_4); } while ((value&GPIO_PIN_4)!=0); do{ value = GPIOPinRead(GPIO_PORTF_BASE,GPIO_PIN_4); } while ((value&GPIO_PIN_4)==0); //====================================================== } }