Cortex—M0單片機二-十進制整數轉換的快速算法
Cortex—M0系列單片機采用Thumb指令集,式(4)中各數據項中的分數項都可以利用該指令集中的右移指令來實現,并且采用多次累加的辦法來完成運算。下面給出具體的匯編語言源程序:
結語
Cortex—M0系列單片機的開發(fā)一般采用集成開發(fā)環(huán)境,為方便使用,可以將上面的子程序封裝成符合集成開發(fā)環(huán)境調用規(guī)則的函數,封裝時最好包含有將單字節(jié)、雙字節(jié)、三字節(jié)和四字節(jié)數據轉化為BCD碼的多個函數。為測試該函數的性能,在IAR集成開發(fā)環(huán)境下,將General options→Library Options選項卡中的Printf formatter設置成Tiny模式,以便盡量減小Sprintf函數的代碼長度和運行時間。為敘述方便,這里假定封裝好的函數名為Hex2Bcd,表1給出其與系統(tǒng)函數sprintf的指令運行周期數(CCSTEP)的對比數據。
由表1可以看出,Hex2Bcd函數的平均運行時間不足sprintf函數的5%,速度優(yōu)勢極其明顯。另外Hex2Bcd函數的程序代碼僅有100字節(jié)左右,遠少于sprintf函數的1.5 KB,極大地節(jié)省了存儲空間。因此,本文中的快速算法具有很強的實用性,值得推廣應用。
單片機相關文章:單片機教程
單片機相關文章:單片機視頻教程
單片機相關文章:單片機工作原理
評論