--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
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