Установка значений bytearray - PullRequest
       12

Установка значений bytearray

0 голосов
/ 25 февраля 2012

У меня есть данные БАЙТА [3]. Первый элемент, data [0], должен быть байтом с очень конкретными значениями, которые следующие:

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;

Как есть, если я установлю data[0]=SET_ACCURACY, он не установит его на 0x01, он установит его на 1, что не то, что я хочу. data [0] должен принимать значение 0x01, когда оно установлено равным SET_ACCURACY. Как мне сделать так, чтобы он делал это не только для SET_ACCURACY, но и для всех других значений?

РЕДАКТИРОВАТЬ: На самом деле это работает ... У меня была другая ошибка в моем коде, который я приписал этому. Извините!

Спасибо!

1 Ответ

0 голосов
/ 25 февраля 2012

"data[0]=SET_ACCURACY не устанавливает его на 0x01, он устанавливает 1"

Он присваивает значение SET_ACCURACYdata[0], что означает, что биты 00000001 сохраняются в памяти по адресу &data[0].0x01 - шестнадцатеричное представление этого байта, 1 - его десятичное представление.

...