2012-02-25 4 views
-1

私はBYTEデータ[3]を持っています。私はそれが0x01に設定しないdata[0]=SET_ACCURACYを設定した場合、それは1にセットされているよう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; 

:最初の要素は、データが[0]は以下の通りである非常に特定の値のバイトでなければなりませんそれは私が望むものではありません。データ[0]は、SET_ACCURACYと等しい値に設定すると0x01の値をとる必要があります。どのようにしてSET_ACCURACYだけでなく、他のすべての値に対してもこれを行うようにしますか?

編集:実際にはこれは機能します...私はこれに起因する私のコードで別のエラーがありました。ごめんなさい!

ありがとうございます!

+0

何ですか? '0x01'と' 1'は同じ番号です!どういう意味ですか? '0x01'は数字の' 1'の16進表現です。 –

+0

私が思っていたことをうんざりしています....私は私のプログラムをもう一度見直す必要があります...多分私はtypedefを間違って使っていますか? – moesef

+0

いいえ!私は何も間違っているとは思わない。配列に入れたものと同じものが得られます。 –

答えて

0

それはビット00000001アドレス&data[0]にメモリに格納されていることを意味data[0]SET_ACCURACYの値を代入「data[0]=SET_ACCURACY0x01に設定しない、それは1に設定します」。 0x01はこのバイトの16進表現で、1は10進表現です。