How to interface RGB LED with STM8S microcontroller.

Problem Statement: How to interface RGB LED with STM8S microcontroller.

Requirements:

Hardware Requirements :

1Nos.STM8S module

1Nos. RGB LED

3Nos. 1KiloOhm Resistance

Connecting Wires 

Software Requirements :

STVD

STVP

Cosmic C Compiler

Code: 

#include "stm8s.h"


int main() {

       // Default clock is HSI/8 = 2MHz

GPIO_DeInit(GPIOD); // prepare Port B for working 

GPIO_Init (GPIOD, GPIO_PIN_4, GPIO_MODE_OUT_PP_LOW_SLOW);            //Declare PB4 as push pull Output pin

GPIO_Init (GPIOD, GPIO_PIN_5, GPIO_MODE_OUT_PP_LOW_SLOW);           //Declare PB5 as push pull Output pin

GPIO_Init (GPIOD, GPIO_PIN_6, GPIO_MODE_OUT_PP_LOW_SLOW);          //Declare PB6 as push pull Output pin

    TIM2_DeInit();

    TIM2_TimeBaseInit(TIM2_PRESCALER_2048, 3500);

    TIM2_Cmd(ENABLE);

 while(TRUE)

    {

          if(TIM2_GetCounter() < 500)

          {

               GPIO_WriteLow(GPIOD, GPIO_PIN_4);

               GPIO_WriteHigh(GPIOD, GPIO_PIN_5);

                             GPIO_WriteHigh(GPIOD, GPIO_PIN_6);

          }

else if((TIM2_GetCounter() > 500) && (TIM2_GetCounter() < 1000) )

          {

               GPIO_WriteHigh(GPIOD, GPIO_PIN_4);

                        GPIO_WriteLow(GPIOD, GPIO_PIN_5);

                        GPIO_WriteHigh(GPIOD, GPIO_PIN_6);

          }

else if((TIM2_GetCounter() > 1000) && (TIM2_GetCounter() < 1500 ))

          {

               GPIO_WriteHigh(GPIOD, GPIO_PIN_4);

                          GPIO_WriteHigh(GPIOD, GPIO_PIN_5);

                          GPIO_WriteLow(GPIOD, GPIO_PIN_6);

          }

else if((TIM2_GetCounter() > 1500) && (TIM2_GetCounter() < 2000) )

          {

               GPIO_WriteLow(GPIOD, GPIO_PIN_4);

                          GPIO_WriteLow(GPIOD, GPIO_PIN_5);

                          GPIO_WriteHigh(GPIOD, GPIO_PIN_6);

          }

else if((TIM2_GetCounter() > 2000) && (TIM2_GetCounter() < 2500) )

          {

               GPIO_WriteHigh(GPIOD, GPIO_PIN_4);

                          GPIO_WriteLow(GPIOD, GPIO_PIN_5);

                          GPIO_WriteLow(GPIOD, GPIO_PIN_6);

          }

else if((TIM2_GetCounter() > 2500) && (TIM2_GetCounter() < 3000) )

          {

               GPIO_WriteHigh(GPIOD, GPIO_PIN_4);

                             GPIO_WriteLow(GPIOD, GPIO_PIN_5);

                          GPIO_WriteHigh(GPIOD, GPIO_PIN_6);

          }

else  

          {

               GPIO_WriteLow(GPIOD, GPIO_PIN_4);

                           GPIO_WriteLow(GPIOD, GPIO_PIN_5);

                           GPIO_WriteLow(GPIOD, GPIO_PIN_6);

          }

          };

}


Schematic Diagram

Code View: Here you will see the 

   

























Comments

Popular posts from this blog

How to write LED Blinking program on STM8S with timer 2 peripheral.

How to interface Buzzer with STM8S microcontroller.