2012-02-25 53 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是其十进制表示形式。