|
2#
楼主 |
发表于 2009-3-28 17:59:50
|
只看该作者
簡單解決,根本不需要指針
#include <16F877A.H>
const char TABLE_1[]={1,2,4,8,16,32,64,128};
int8 TABLE_2[]={1,2,4,8,16,32,64,128};
void main()
{
int8 i,j,k;
k = 5;
i = TABLE_1[k]; // 管它是不是常數,語法都相同
j = TABLE_2[k];
while(1);
}
不要迷戀指針! 也不需要調用函數, CCS 會幫你搞定的,會讓你有更簡潔的程序
.................... k = 5;
*
002B: MOVLW 05
002C: MOVWF k
.................... i = TABLE_1[k];
002D: MOVF k,W
002E: CALL @const27 <--- CCS 會幫你搞出一個函數
002F: MOVWF @78
0030: MOVWF i
.................... j = TABLE_2[k];
0031: MOVLW TABLE_2
0032: ADDWF k,W
0033: MOVWF FSR
0034: MOVF INDF,W
0035: MOVWF j
.................... |
|