Ntse Qhov Muag Raws li DWIN Circular Screen

—— Los ntawm DWIN Developer Forum

Lub rooj sib tham tsim tawm DWIN qhib qhov project pom zoo rau txhua tus neeg lub sijhawm no yog qhov kev nthuav dav heev rau simulating kev txav ntawm tib neeg lub qhov muag.Tus kws tshaj lij siv ntau yam khoom siv rau tib neeg lub qhov muag kom paub txog kev ua haujlwm xws li lub qhov muag txav, blinking, paub lub ntsej muag thiab ua raws.

Taw qhia rau cov kev daws teeb meem qhib:

1. UI cov khoom siv duab

Editor's note: DWIN ntse screen yog ua raws li cov duab los ua kom tiav UI kev txhim kho, uas tuaj yeem paub txog ntau yam teebmeem.

dytrgf (1)

2. Kev txhim kho interface

Nws yog qhov yooj yim heev los tsim qhov sib cuam tshuam los ntawm DGUS software, thiab tsuas yog ob lub duab tswj tau xav tau.Hauv qhov niaj hnub no, tus kws ua haujlwm tau xaiv 2.1-nti round ntse screen.

dytrgf (2)

3. Ua kom pom cov duab ci ntsa iab

Cia cov duab ntawm daim tawv muag yuav tshwm nyob rau hauv lem ntawm ib ntus:

// Blink animation

void blink_animat(void)

{

if(blink_flag == 0)

{

blink_cnt++;

if(blink_cnt >= 4)

{

blink_flag = 1;

}

}

lwm tus

{

blink_cnt-;

if(blink_cnt <= 0)

{

blink_flag = 0;

}

}

write_dgus_vp(0×3000, (u8 *)&blink_cnt, 2);

}

void blink_run()

{

static u32 run_timer_cnt = 0;

run_timer_cnt++;

if(run_timer_cnt >= 2000000)

{

run_timer_cnt = 0;

blink_animat();

Delay_ms(30);

blink_animat();

Delay_ms(30);

blink_animat();

Delay_ms(30);

blink_animat();

Delay_ms(30);

blink_animat();

Delay_ms(30);

blink_animat();

Delay_ms(30);

blink_animat();

Delay_ms(30);

blink_animat();

Delay_ms(30);

}

}

4. Paub txog qhov muag pom ntawm sab laug thiab sab xis.

Qhov no zoo ib yam li blinking, tab sis nws yuav tsum tau sib piv lub sij hawm ntawm cov siv lead ua oscillator los tswj lub qhov muag txav.Tom qab ntau zaus ntawm kev debugging, tus engineer tsim cov txheej txheem hauv qab no.

// Qhov muag animation

void eyeball_animat(void)

{

eyeball_timer_cnt++;

yog tias (eyeball_timer_cnt < 50)

{

eyeball_cnt = 20;

}

lwm yam yog tias (eyeball_timer_cnt < 51)

{

eyeball_cnt = 50;

}

lwm yam yog tias (eyeball_timer_cnt < 52)

{

eyeball_cnt = 80;

}

lwm yam yog tias (eyeball_timer_cnt < 53)

{

eyeball_cnt = 94;

}

lwm yam yog tias(eyeball_timer_cnt <103)

{

eyeball_cnt = 94;

}

lwm yam yog tias (eyeball_timer_cnt < 104)

{

eyeball_cnt = 80;

}

lwm yam yog tias(eyeball_timer_cnt <105)

{

eyeball_cnt = 50;

}

lwm yam yog tias(eyeball_timer_cnt <106)

{

eyeball_cnt = 20;

}

lwm yam yog tias(eyeball_timer_cnt <107)

{

eyeball_cnt = -10;

}

lwm yam yog tias (eyeball_timer_cnt < 108)

{

eyeball_cnt = -40;

}

lwm yam yog tias (eyeball_timer_cnt < 158)

{

eyeball_cnt = -54;

}

lwm yam yog tias(eyeball_timer_cnt <159)

{

eyeball_cnt = -40;

}

lwm yam yog tias (eyeball_timer_cnt < 160)

{

eyeball_cnt = -10;

}

lwm yam yog tias(eyeball_timer_cnt <161)

{

eyeball_cnt = 20;

eyeball_timer_cnt = 0;

}

// Txav mus rau sab laug thiab sab xis

// if(eyeball_flag == 0)

// {

// eyeball_cnt++;

// if(eyeball_cnt >= 94)

// {

// eyeball_flag = 1;

// }

// }

// lwm

// {

// eyeball_cnt–;

// if(eyeball_cnt <= -54)

// {

// eyeball_flag = 0;

// }

// }

if(eyeball_cnt >= 0)

{

eyeball_pos[0] = 0 × 00;

eyeball_pos[1] = eyeball_cnt;

}

lwm tus

{

eyeball_pos[0] = 0xFF;

eyeball_pos[1] = (eyeball_cnt & 0xFF);

}

write_dgus_vp(0×3111, (u8 *)&eyeball_pos, 2);

}

void eyeball_run()

{

static u32 run_timer_cnt = 0;

run_timer_cnt++;

if(run_timer_cnt >= 20000)

{

run_timer_cnt = 0;

eyeball_animat();

}

}

5. Ntxiv ESP32 lub ntsej muag paub txog kev txav ntawm lub qhov muag tom qab lub ntsej muag.

Txoj kev ua ntawm no yog tias thaum pom lub ntsej muag, lub qhov muag tsis txav los ntawm lawv tus kheej, thiab qhov sib txawv yog txhais kom nce ntxiv hauv lub voj voog.Thaum qhov nce mus txog ib qho nqi, cov pob muag yuav txav los ntawm lawv tus kheej.Thaum qhov chaw nres nkoj serial tau txais cov ntaub ntawv, qhov hloov pauv no yuav raug tshem tawm, thiab tom qab ntawd tsuas yog txav lub qhov muag raws li txoj haujlwm ntawm lub ntsej muag.Lub ntsiab code yog raws li nram no:

yog (rec_data_timer_cnt < 1000000)

{

rec_data_timer_cnt++;

}

lwm tus

{

eyeball_run();

}

extern u32 rec_data_timer_cnt;

extern u16 eyeball_timer_cnt;

tsis muaj kev sib txuas lus_CMD(u8 st)

{

if((uart[st].Rx_F==1 )&&(uart[st].Rx_T==0))

{

rec_data_timer_cnt = 0;

eyeball_timer_cnt = 0;

#if(Type_Communication==1)

Piav_8283(st);

#elif(Type_Communication==2)

Piav_Modbus(st);

#endif

uart[st].Rx_F=0;

uart[st].Rx_Num=0;

}

}


Post lub sij hawm: Jun-26-2023