注:本文是作者以前發(fā)表在其個(gè)人博客,現(xiàn)在發(fā)布到“聚豐開(kāi)發(fā)”專(zhuān)欄
10.能否通過(guò)一些應(yīng)用實(shí)例來(lái)讓大家了解應(yīng)廣雙核單片機(jī)針對(duì)某些應(yīng)用場(chǎng)合的便捷性?
例1:
目前價(jià)格低于0.2美元的單片機(jī)大都不帶UART(串口)硬件,如果用一款低價(jià)單片機(jī)開(kāi)發(fā)需要支持串口通訊的產(chǎn)品,只能是用IO口軟件模擬串口。
用IO口軟件模擬串口的代碼并不復(fù)雜,但如果單片機(jī)還要處理其它事情,就會(huì)遇到麻煩。假定通訊速率是9600,這樣每個(gè)位寬大約為104us。
一種方法是直接在主程序中循環(huán)完成通訊,這樣當(dāng)有數(shù)據(jù)收發(fā)的時(shí)候就無(wú)法處理其它事情,每個(gè)字節(jié)會(huì)占用超過(guò)1ms的時(shí)間,數(shù)據(jù)越多,占用的時(shí)間越長(zhǎng),對(duì)于數(shù)據(jù)發(fā)送處理還好,數(shù)據(jù)接收就會(huì)很麻煩,理論上需要程序每52us去查看一次IO狀態(tài)才行,這樣的程序只要簡(jiǎn)單一想就知道編寫(xiě)起來(lái)不是一件簡(jiǎn)單的事情。
另一種方法是用中斷,這種處理方法比循環(huán)的要簡(jiǎn)便一些,但要做到同時(shí)收發(fā)和兼顧處理其它事情,同樣也不是一件簡(jiǎn)單的事情。
對(duì)于普通單片機(jī)如果只處理串口數(shù)據(jù)收發(fā),不做其它事情,不管程序循環(huán)還是中斷方式,程序相對(duì)都不會(huì)太過(guò)復(fù)雜,上面只所以復(fù)雜是需要同時(shí)處理其它的事情。
使用應(yīng)廣雙核單片機(jī)就可以很好的解決這個(gè)問(wèn)題,首先價(jià)格上不會(huì)超過(guò)0.2美元;其次代碼會(huì)相對(duì)簡(jiǎn)單,一個(gè)內(nèi)核處理主程序,一個(gè)內(nèi)核專(zhuān)門(mén)負(fù)責(zé)串口通訊,兩者都會(huì)有很好的實(shí)時(shí)性。
例2:
處理38K紅外遙控碼。
38K紅外遙控碼是頻率38K占空比為1:2的方波,如果單片機(jī)硬件不支持IR接口,就需要單片機(jī)能連續(xù)輸出寬度約為9us和18us的高低電平。如果要單片機(jī)輸出這種周期持續(xù)穩(wěn)定的方波,在發(fā)碼期間基本上不能使用中斷,象東芝碼一次發(fā)碼時(shí)間大約需要60ms,這樣就會(huì)嚴(yán)重影響程序的計(jì)時(shí)等功能。
紅外碼的接收相對(duì)要好一些,每個(gè)碼都有幾百微秒的時(shí)間,采用中斷完全可以實(shí)現(xiàn)解碼,唯一麻煩的是紅外碼通常都是數(shù)據(jù)包,而且數(shù)據(jù)包中間還包含一些特殊格式,不象串口所有的字節(jié)碼都是固定格式,這樣需要程序按照特定流程才能解碼,無(wú)法象串口一樣只要一個(gè)字節(jié)的接收程序就可以完成所有數(shù)據(jù)的接收,所以紅外的接收解碼程序會(huì)比較長(zhǎng),中間如果夾入其它事情處理就會(huì)變得很復(fù)雜。
以我個(gè)人的經(jīng)驗(yàn),普通單片機(jī)完成紅外遙控碼的處理,大約需要2~3天時(shí)間,最終效果不會(huì)太好,但如果使用應(yīng)廣雙核單片機(jī),半天即可完成,代碼數(shù)量要少許多,效果則是更理想。
例3:
一個(gè)用應(yīng)廣雙核單片機(jī)做的紅外遮擋開(kāi)光(反射式)全部代碼。
IR_SWequpb.1
IR_INPUTequpa.0
IR_OUTPUTequpa.6
byte ir_new
byte ir_old
byte ir_enable
byte i
byte ir_new1
byte ir_new2
byte ir_new3
gotomain0
gotomain1
//----------------FPPA0-------------------
main0:
.ADJUST_OTP_IHRCR8MIPS// IHRC/2 = 8MIPS, WatchDog Disable, RAM 0,1 temporary be used
sp = 0x30
disgint
inten = 0
mova,0b000_11_111//disable timer
movt16m,a
set1pbc.1
set0IR_SW
set0pac.0
set1pac.6
set0IR_OUTPUT
delay200
ir_new = 0
ir_old = 0
ir_enable = 0
mova,0
movintrq,a
set1fppen.1//eanble FPPA1
ir_enable = 1
i = 20
while(i)
{
delay200
i--
}
if(IR_INPUT)
{
ir_old = 1
}
else
{
ir_old = 0
}
ir_enable = 0
i = 5
while(i)
{
delay200
i--
}
clkmd.1 = 1//enable watch dog
main0_loop:
wdreset
callcheck_ir
if(ir_new != ir_old)
{
if(ir_new != 1)
{
togIR_SW
}
ir_old = ir_new
}
i = 100
while(i)
{
delay200
i--
}
gotomain0_loop
check_ir:
ir_enable = 1
i = 20
while(i)
{
delay200
i--
}
if(IR_INPUT)
{
ir_new1 = 1
}
else
{
ir_new1 = 0
}
i = 5
while(i)
{
delay200
i--
}
if(IR_INPUT)
{
ir_new2 = 1
}
else
{
ir_new2 = 0
}
i = 5
while(i)
{
delay200
i--
}
if(IR_INPUT)
{
ir_new3 = 1
}
else
{
ir_new3 = 0
}
if((ir_new1 == ir_new2) && (ir_new2 == ir_new3))
{
ir_new = ir_new1
}
else
{
ir_new = ir_old
}
ir_enable = 0
i = 20
while(i)
{
delay200
i--
}
ret
//----------------FPPA1-------------------
main1:
sp = 0x38
delay200
main1_loop://output 38k IR signal
if(ir_enable)
{
set1IR_OUTPUT
delay33
set0IR_OUTPUT
delay67
}
else
{
set0IR_OUTPUT
delay10
}
gotomain1_loop
11.應(yīng)廣雙核單片機(jī)存在哪些不足?
回答:
到目前為止已經(jīng)上市的所有型號(hào)最低工作電壓為2.5V,這個(gè)電壓值有點(diǎn)高,不適合電池供電的產(chǎn)品,如果能做到2.2V會(huì)更具競(jìng)爭(zhēng)力。了解到的信息是應(yīng)廣科技有計(jì)劃推出更低工作電壓的版本。
編譯工具存在一些不足,對(duì)C語(yǔ)言的支持并不是很理想,仿真時(shí)選擇3.3V工作電壓容易產(chǎn)生低電壓復(fù)位(此時(shí)需要保證工作電壓大于3.3V)。對(duì)于有經(jīng)驗(yàn)的工程師這點(diǎn)不是關(guān)鍵問(wèn)題,開(kāi)發(fā)過(guò)程可以繞過(guò)這些不足。
部分型號(hào)的ADC精度略微偏低,但可滿(mǎn)足大部分場(chǎng)合的應(yīng)用需求。
某些功能上存在個(gè)別瑕疵,不過(guò)應(yīng)廣科技在其網(wǎng)頁(yè)上已經(jīng)將這些瑕疵全部列舉出來(lái),并提出了相應(yīng)解決方法。這一點(diǎn)比其它公司要做得好,其它公司往往是用到最后才發(fā)現(xiàn)有這樣那樣的問(wèn)題,還有可能是無(wú)法解決的問(wèn)題,讓用戶(hù)進(jìn)退兩難。
12.應(yīng)廣科技對(duì)客戶(hù)的技術(shù)支持是否及時(shí)?
回答:
應(yīng)廣科技作為一家成立時(shí)間不長(zhǎng)的公司,非常重視客戶(hù)服務(wù),無(wú)論大小客戶(hù),只要你在使用應(yīng)廣科技的產(chǎn)品進(jìn)行開(kāi)發(fā),所有技術(shù)問(wèn)題都有專(zhuān)人進(jìn)行回復(fù),通常會(huì)在第二個(gè)工作日回復(fù)電子郵件。
13.應(yīng)廣的雙核單片機(jī)保密性怎樣?花多少錢(qián)可以解密?
回答:
相較其它臺(tái)系單片機(jī),應(yīng)廣有著良好的保密性,目前市場(chǎng)上暫無(wú)提供針對(duì)應(yīng)廣單片機(jī)的解密服務(wù)。
14.如果我想用應(yīng)廣的單片機(jī)開(kāi)發(fā)產(chǎn)品?什么地方可以買(mǎi)到芯片和開(kāi)發(fā)工具?
回答:
這個(gè)需要聯(lián)系當(dāng)?shù)氐拇砩蹋绻恢来砩炭梢灾苯勇?lián)系應(yīng)廣科技進(jìn)行咨詢(xún),應(yīng)廣科技網(wǎng)址www.padauk.com.tw
我這里不提供應(yīng)廣單片機(jī)裸片,但可以根據(jù)客戶(hù)需求用應(yīng)廣雙核單片機(jī)完成產(chǎn)品開(kāi)發(fā),并且不收開(kāi)發(fā)費(fèi)。
15.哪些產(chǎn)品適合選用應(yīng)廣的單片機(jī)?
回答:
這個(gè)問(wèn)題有點(diǎn)不好回答,其實(shí)蠻多場(chǎng)合都挺適合的,可以這么說(shuō),相信你一旦使用過(guò)應(yīng)廣的產(chǎn)品,就會(huì)喜歡上它。
在我看來(lái),用義隆153做有點(diǎn)難,用松翰和合泰單片機(jī)做有點(diǎn)貴,這類(lèi)產(chǎn)品最適合應(yīng)廣的單片機(jī);當(dāng)然,那種帶有通訊等實(shí)時(shí)性強(qiáng)功能的低成本方案應(yīng)廣更是不二選擇。
-
單機(jī)片
+關(guān)注
關(guān)注
0文章
57瀏覽量
12911
發(fā)布評(píng)論請(qǐng)先 登錄
單片機(jī)物聯(lián)網(wǎng)項(xiàng)目實(shí)戰(zhàn):基于LVGL的智能火災(zāi)報(bào)警系統(tǒng)-基于STM32F103&ESP32-S3開(kāi)發(fā)板(附教程/源碼)
單片機(jī)物聯(lián)網(wǎng)項(xiàng)目實(shí)戰(zhàn):基于LVGL的智慧大棚農(nóng)業(yè)系統(tǒng)-基于STM32F103&ESP32-S3開(kāi)發(fā)板(附教程/源碼)
怎么學(xué)好單片機(jī)?
STM32H755雙核單片機(jī)的使用疑問(wèn)求解?
如何在rt-thread studio上開(kāi)發(fā)STM32H747這類(lèi)雙核的單片機(jī)?
單片機(jī)用什么封裝
什么單片機(jī)比較耐用
怎么測(cè)單片機(jī)系統(tǒng)頻率
單片機(jī)怎么驅(qū)動(dòng)電機(jī)?
單片機(jī)怎么燒程序
低功耗單片機(jī)各型號(hào)的對(duì)比及選型參考
單片機(jī)科普總結(jié),建議收藏!
雙核單片機(jī)之初體驗(yàn)--3
評(píng)論