Есть ли способ заставить работать светодиод RGB с задержкой при помощи кнопки включения светодиода, при этом одновременно работают два разных экземпляра? - PullRequest
0 голосов
/ 28 марта 2019

Я пытаюсь, чтобы в S9ZVLA12MLC одновременно работали 2 функции, одна из которых представляет собой светодиод RGB, который меняет цвета с помощью задержки и цикла for, а другая - кнопка, которая включает светодиод белого цвета.,Я хотел бы, чтобы светодиод RGB был похож на рассеянный свет, который постоянно меняет цвет и никогда не останавливается, но проблема в том, что я не могу включить белый светодиод из-за этого.Я использовал разрыв для петли, чтобы включить белый светодиод, но остановил светодиод RGB, один или другой.Я не могу заставить их обоих работать вместе, и я верю, что это из-за задержки.Кто-нибудь знает, как установить задержку или что-то подобное, чтобы я мог изменить свет, а также включить белый светодиод, не выключая другие или хотя бы пример включения белого светодиода с включенной другой функцией?

Я попробовал ПРОРЫВ;но это не помогает, также добавляя функции в цикл, но игнорируется.

void LED_Colors(void)
{ int i;
for(; ;)
    //Red
    {
    for(i=0;i<0xFF;i++)
        {
        delay();
        PWM0DTY5+=1; //Red
        PWM0DTY3=0x00; //Green
        PWM0DTY7-=1; //Blue
        }
        //Green
        for(i=0;i<0xFF;i++)
            {
            delay();
            PWM0DTY5-=1; //Red
            PWM0DTY3+=1; //Green
            PWM0DTY7=0x00; //Blue
            }
            //Blue
            for(i=0;i<0xFF;i++)
                {
                delay();
                PWM0DTY5=0x00; //Red
                PWM0DTY3-=1; //Green
                PWM0DTY7+=1; //Blue
                }
    }
}
void delay(void)
{
   int i;
   for (i=0 ;i<32767; i++) //Max possible value is 32767
   {}

}```
...