久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > PIC程序優化

PIC程序優化

作者: 時間:2016-11-13 來源:網絡 收藏
程序優化中的幾點

賦值語句是非常占用空間的,一個普通的給外部變量的賦值語句可能需要20到40個字節的代碼空間。如果程序中有大量的賦值語句,會占用許多程序空間。優化時可以針對有規律的賦值語句使用函數方式,以及使用memcpy方式。

本文引用地址:http://cqxgywz.com/article/201611/316239.htm

在作比較時,將if (x<(y+1))修改為if (x<=y)會節約不少。

循環中,在C51時for(x=0;x<10;x++)比for(x=10;x>0;x--)要多一個字節;在PICC18中則相反。

充分利用指針,可以提高程序的效率,但是要注意不能濫用。

適當的冗余代碼是需要的,不要把它們刪除了。

注意程序的寫法

單片機程序中,代碼的表達方式,或者叫寫法也是很重要的,一個不好的寫法可能會造成空間的浪費和效率的降低。而一個好的寫法會減少代碼的大小。不要依賴于編譯器的優化功能,很多時候,優化是沒有預期的那樣好的效果,可以手工優化的地方就盡量自己動手了。

還有就是不同的編譯器的優化是不同的,需要嘗試一下不同的程序表達方式,經過比較才能得到一個比較好的方式。

Keil串口調試技巧

Keil C51整合了目前功能最強的C51編譯器和最好的IDE調試環境。在新版本的Keil中,增加了很多功能,其中之一就是串口仿真。就是說無須實際的硬件,利用計算機的串口就可以完全進行串口仿真。

使用到的調試命令:

ASSIGN將計算機的串口設置為單片機的串口
語法:ASSIGN channel < inreg > outreg
例如:ASSIGN COM1 < SIN > SOUT
上面的括號不能少。

MODE設置串口的參數(波特率、數據位、停止位等)
語法:MODE COMx, baudrate, parity, databits, stopbits
例如:MODE COM2, 19200, 0, 8, 1

實際軟件調試時,先在Keil中完成程序的編寫,然后進入軟件仿真狀態,并用一根自制的串口線將計算機的兩個串口環接起來(注意2與3要交叉,5可以接也可以不接)。這里需要計算機上至少要有兩個串口,一個是仿真單片機用,另外一個是通信調試用,不然就需要兩臺計算機了。在仿真狀態下,使用上面的兩個命令設置好串口的參數(每次都輸入參數會比較麻煩,這時可以在仿真參數中設置好配置文件)。在計算機中使用任何串口調試軟件與Keil進行通信,可以在Keil中設置斷點,實際結果與硬件仿真器的效果一樣,還更加簡單方便。

更多的用法可以參考Keil的幫助文件DBG51.CHM

負數的問題- -

在PICC18中,如果傳輸一個負數X時,用X/256和X%256分別取高低位時,高位會出現問題,會被加一。

這個問題需要這樣解決:先將X傳遞到一個無符號的整數,然后在分別取高低位,就不會出現問題了。



關鍵詞: PIC程序優

評論


技術專區

關閉