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
Comments
Post a Comment