2012-02-25 31 views
-1

我有一個BYTE數據[3]。第一元件,數據[0]必須是非常具體的值的BYTE是其中如下:bytearray的設置值

typedef enum 
{ 
SET_ACCURACY=0x01, 
SET_RETRACT_LIMIT=0x02, 
SET_EXTEND_LIMT=0x03, 
SET_MOVEMENT_THRESHOLD=0x04, 
SET_STALL_TIME= 0x05, 
SET_PWM_THRESHOLD= 0x06, 
SET_DERIVATIVE_THRESHOLD= 0x07, 
SET_DERIVATIVE_MAXIMUM = 0x08, 
SET_DERIVATIVE_MINIMUM= 0x09, 
SET_PWM_MAXIMUM= 0x0A, 
SET_PWM_MINIMUM = 0x0B, 
SET_PROPORTIONAL_GAIN = 0x0C, 
SET_DERIVATIVE_GAIN= 0x0D, 
SET_AVERAGE_RC = 0x0E, 
SET_AVERAGE_ADC = 0x0F, 
GET_FEEDBACK=0x10, 
SET_POSITION=0x20, 
SET_SPEED= 0x21, 
DISABLE_MANUAL = 0x30, 
RESET= 0xFF, 
}TYPE_CMD; 

AS是,如果我設置data[0]=SET_ACCURACY它不將其設置爲0x01,它它設置爲1 ,這不是我想要的。當設置爲等於SET_ACCURACY時,數據[0]必須取值0x01。我該如何做到這一點,因爲它不僅僅是爲了SET_ACCURACY,而是爲了所有其他的值呢?

編輯:其實這個工程...我在我的代碼中有一個不同的錯誤,我歸因於此。抱歉!

謝謝!

+0

什麼?! '0x01'和'1'是相同的數字!你什麼意思? 「0x01」只是數字「1」的十六進制表示。 – 2012-02-25 09:36:54

+0

是啊多數民衆贊成在我的想法....我需要再看看我的計劃...也許我正確使用typedef? – moesef 2012-02-25 09:45:15

+0

不!我認爲沒有什麼不對。你得到的東西你放入數組中。 – 2012-02-25 09:49:12

回答

0

data[0]=SET_ACCURACY不將其設置爲0x01,它它設置爲1

它指定的SET_ACCURACY值到data[0],這意味着比特00000001在地址&data[0]被存儲到存儲器中。 0x01是該字節的十六進制表示形式,1是其十進制表示形式。