[Open Source]DWIN Screen Control WS2812 Ambient Lighting

--De la DWIN Developer Forum

Această problemă pentru dvs. pentru a împinge cazul premiat cu sursă deschisă a DWIN Developer Forum - DWIN controlul ecranului WS2812 iluminarea ambientală, inginerii prin nucleul sistemului de operare al ecranului inteligent COF pentru a controla cu precizie centura de lumină fantomă WS2812 fiecare culoare a mărgelelor de lampă, pentru a obține schimbarea culorii a efectelor dinamice ale centurii.

1. Material UI

vcsd (1)

2.UI Design

vcsd (2)

3. Proiect C51

Codul driverului pentru controlul culorii luminii prin portul IO este următorul:

void WS2812_Write_RGB()

{

u8 i,j,a;

EA=0;

for(j=0;j<3;j++)//Numărul de transmisii necesare pentru fiecare lumină

{

a=RGB_One[j];

pentru(i=0;i<8;i++)

{

WS2812_DI=1;

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_( );_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_( );_nop_();_nop_();_nop_();

WS2812_DI=(a&0x80);

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

a<<=1;

WS2812_DI=0;

}

WS2812_DI=0;

}

EA=1;

}

void WS2812_RST()

{

WS2812_DI=0;

sys_delay_ms(1);

}

void WS2812_DIS_1()//Efect 1, comutare de culoare, toate culorile LED, un total de 7 culori de bază

{

static u8 j=1;

u16 i=0;

if(j&0X01) RGB_One[1]=10;else RGB_One[1]=0;

if(j&0X02) RGB_One[0]=10;else RGB_One[0]=0;

if(j&0X04) RGB_One[2]=10;else RGB_One[2]=0;

j%=7;

j++;

pentru(i=0;i

WS2812_Write_RGB();

WS2812_RST();

sys_delay_ms(1000);

}


Ora postării: 31-ian-2024