日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] 工作了7個月之久,對單片機(jī)的編程也開始慢慢熟悉起來,以前總是知道單片機(jī)就是定時(shí)器,狀態(tài)機(jī),中斷這些東西結(jié)合起來效率是相當(dāng)高的,但是自從接手開發(fā)GPF這個芯片之后,我發(fā)現(xiàn)了另外一種單片機(jī)的開發(fā)技巧,高手請繞

 工作了7個月之久,對單片機(jī)的編程也開始慢慢熟悉起來,以前總是知道單片機(jī)就是定時(shí)器,狀態(tài)機(jī),中斷這些東西結(jié)合起來效率是相當(dāng)高的,但是自從接手開發(fā)GPF這個芯片之后,我發(fā)現(xiàn)了另外一種單片機(jī)的開發(fā)技巧,高手請繞道。

我們都知道,在程序中,延時(shí)會影響單片機(jī)的實(shí)時(shí)性能,導(dǎo)致效率明顯降低,但是在GPF這個芯片的開發(fā)中,系統(tǒng)延時(shí)和初始化被供應(yīng)商做到了一塊,所以調(diào)用程序,必須要做一定的loop才能使得程序能夠正常的跑起來,其實(shí)我也不知道她們?yōu)槭裁匆@么做。

在工作中,改一份源碼不是隨隨便便就可以改的,當(dāng)時(shí)做了這么一個程序,源碼我就不公開了,寫個案例解釋:

void test()

{

int i = 0 ;

int tick ;

int BatteryStatus = 0;

int Voltage ;

int count = 0 ;

int Voltage_value ;

char ch ;

scanf("%d",&BatteryStatus);

while(1)

{

delay_20ms();

switch(BatteryStatus)

{

case 1:

if(count == 50)

{

printf("0x%x\n",0xE1);

count = 0 ;

};break ;

case 2:

if(count == 50)

{

printf("0x%x\n",0x90); //發(fā)通用'1'信號

count = 0 ;

};break ;

default:

break ;

}

count++ ;

#if 0

ch = getch(); //假設(shè)我在這設(shè)立一個按鍵

if(ch == 'q')

{

printf("%x",0x48);

break ;

}

#endif

}

}

在while循環(huán)中,首先進(jìn)去是延時(shí)20個ms,然后count計(jì)數(shù)器加加,當(dāng)加到50次也就是一秒鐘了,然后清零。此時(shí)若按下按鍵,不會受到干擾,程序正常運(yùn)行,效率依然很高。如果這時(shí)候delay_20ms改成delay_1000ms,程序掃描按鍵每次就要等待1s鐘,影響效率。計(jì)數(shù)值可以自我估計(jì)一下,不需要太準(zhǔn),這樣的程序在延時(shí)不需要太精準(zhǔn)的可以實(shí)現(xiàn)和定時(shí)器差不多一樣的功能。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉