roboforum.ru

Технический форум по робототехнике.

dccharacter - Излить посильно

Правила форума
В данном разделе каждый может иметь не более одной темы. Тема должна начинаться с логина (ника) робофорума.

Re: dccharacter - Излить посильно

Duhas » 04 фев 2012, 21:06

ну трудится непонятно кем не интересно, имхо..

я в принципе работаю только тогда когда мне интересно... денег меньше, но интересно...

Re: dccharacter - Излить посильно

Michael_K » 04 фев 2012, 21:16

Duhas писал(а):я в принципе работаю только тогда когда мне интересно... денег меньше, но интересно...

Молодой ищщо :)

Re: dccharacter - Излить посильно

Duhas » 04 фев 2012, 22:21

и да и нет,

молодой да

не думаю что буду стараться уйти от этого принципа.. скорее буду стараться следую этому принципу зарабатывать достаточно

Re: dccharacter - Излить посильно

Michael_K » 04 фев 2012, 23:32

Да я ж не упрекаю, я завидую...
И поверьте - "зарабатывать" - это ни при чем.
Любишь кататься - люби и саночки возить.

Я к тому, что вот посуду мыть не интересно... а надо :))) И у конвейера стоять всю жизнь - не интересно... Интерес вообще штука такая... сегодня есть, завтра нет. А ответственность, например, остается, репутация остается и т.д.

Re: dccharacter - Излить посильно

Duhas » 05 фев 2012, 08:49

нуу, я не особо люблю мыть посуду )

а если по делу - много не интересно.. просто стараюсь уходить в сторону где интересно..

Re: dccharacter - Излить посильно

=DeaD= » 05 фев 2012, 10:16

Работать не за деньги первые несколько лет вполне нормально.
Сначала ты работаешь на репутацию\компетенции, потом они работают на тебя.

Re: dccharacter - Излить посильно

dccharacter » 09 фев 2012, 03:21

Пытался осмыслить концепцию "2's complement". И если вроде бы для 8-ми битного числа получилось (поксорь и прибавь один), то для 6-ти битного - ну просто ад какой-то. Удалось неоднократно взорвать и вывернуть себе наизнанку мозг, но как интерпретировать реультат с акселя так и не понял.


Signed byte 6 bit 2’s complement data with allowable range of
+31 to -32

В итоге нагородил вот такой адский огород:
signed char rxReg[3];
rxReg[0] = (~rxReg[0]&0x3F) + 1;
if (rxReg[0] > 31) rxReg[0] -=64;

Мозг уже в принципе соображать отказывается

Добавлено спустя 29 минут 42 секунды:
Код: Выделить всёРазвернуть
rxReg[0] *= 4;
rxReg[0] /= 4;

О, так работает. Если объединить в одну строку, оптимизация съедает знак (я так думаю)

Re: dccharacter - Излить посильно

elmot » 09 фев 2012, 10:50

dccharacter писал(а):Пытался осмыслить концепцию "2's complement". И если вроде бы для 8-ми битного числа получилось (поксорь и прибавь один), то для 6-ти битного - ну просто ад какой-то. Удалось неоднократно взорвать и вывернуть себе наизнанку мозг, но как интерпретировать реультат с акселя так и не понял.


Signed byte 6 bit 2’s complement data with allowable range of
+31 to -32

В итоге нагородил вот такой адский огород:
signed char rxReg[3];
rxReg[0] = (~rxReg[0]&0x3F) + 1;
if (rxReg[0] > 31) rxReg[0] -=64;

Мозг уже в принципе соображать отказывается

Добавлено спустя 29 минут 42 секунды:
Код: Выделить всёРазвернуть
rxReg[0] *= 4;
rxReg[0] /= 4;

О, так работает. Если объединить в одну строку, оптимизация съедает знак (я так думаю)

А чего ты добивался-то?

Re: dccharacter - Излить посильно

boez » 09 фев 2012, 12:05

Код: Выделить всёРазвернуть
val = ((signed char)(RxReg[0]<<2))>>2

Причем >>2 вообще и не обязательно - можно просто сделать <<2 и работать дальше с этим числом как с обычным signed char -128..127, просто с 6-битной точностью (младшие 2 бита всегда нули).

Re: dccharacter - Излить посильно

dccharacter » 09 фев 2012, 12:39

boez писал(а):
Код: Выделить всёРазвернуть
val = ((signed char)(RxReg[0]<<2))>>2

Причем >>2 вообще и не обязательно - можно просто сделать <<2 и работать дальше с этим числом как с обычным signed char -128..127, просто с 6-битной точностью (младшие 2 бита всегда нули).

Ну да... Просто я так феерически вчера тупил! Но, поскольку вы в мою голову залезть не сможете, вам этой фантасмагории не увидать :-)

Добавлено спустя 36 секунд:
elmot писал(а):
dccharacter писал(а):Signed byte 6 bit 2’s complement data with allowable range of
+31 to -32
А чего ты добивался-то?

Да тупо снять показания с акселя

Re: dccharacter - Излить посильно

dccharacter » 10 фев 2012, 00:00

boez писал(а):
Код: Выделить всёРазвернуть
val = ((signed char)(RxReg[0]<<2))>>2

Причем >>2 вообще и не обязательно - можно просто сделать <<2 и работать дальше с этим числом как с обычным signed char -128..127, просто с 6-битной точностью (младшие 2 бита всегда нули).

А ларчик просто открывался:
Код: Выделить всёРазвернуть
typedef union {
byte Byte;
struct{
   byte XOUT0           :1;
   byte XOUT1           :1;
   byte XOUT2           :1;
   byte XOUT3           :1;
   byte XOUT4           :1;
   byte XOUT5           :1;
   byte ALERT           :1;
   byte                 :1;         
}  Bits;
struct {
   byte  grpXOUT        :6;
   byte                 :1;
   byte                 :1;
}  Merged;
} XOUT_STR;

extern volatile XOUT_STR _XOUT;
#define XOUT_REG               _XOUT.Byte
#define XOUT_XOUT0          _XOUT.bits.XOUT0
#define XOUT_XOUT1          _XOUT.bits.XOUT1
#define XOUT_XOUT2          _XOUT.bits.XOUT2
#define XOUT_XOUT3          _XOUT.bits.XOUT3
#define XOUT_XOUT4          _XOUT.bits.XOUT4
#define XOUT_XOUT5          _XOUT.bits.XOUT5
#define XOUT_ALERT          _XOUT.bits.ALERT

#define XOUT_XOUT           _XOUT.Merged.grpXOUT


Дальше читаем регистр в переменную-структуру XOUT_REG, а нужное нам значение уже лежит в XOUT_XOUT

Добавлено спустя 57 секунд:
П.С. Придумал не сам - просто попристальнее посмотрел на фрискейловский хидер

Добавлено спустя 1 час 16 минут 59 секунд:
Меняем тему: 9-ти осевой мемс
http://invensense.com/mems/gyro/mpu9150.html
Available 4/16/2012
The MPU-9150 is a System in Package (SiP) that combines two chips: the MPU-6050, which contains a 3-axis gyroscope, 3-axis accelerometer, and an onboard Digital Motion Processor™ (DMP™) capable of processing complex 9-axis MotionFusion algorithms; and the AK8975, a 3-axis digital compass.

Ругают правда эту Инвенсенсу на чем свет стоит за их СДК - пишут, что садист разрабатывал. Но скажите клевая штуковина?

Re: dccharacter - Излить посильно

Myp » 10 фев 2012, 08:47

capable of processing complex 9-axis MotionFusion algorithms

это он там сам внутре что-то считает и выдаёт наружу готовое движение?

Re: dccharacter - Излить посильно

dccharacter » 10 фев 2012, 12:43

Myp писал(а):capable of processing complex 9-axis MotionFusion algorithms

это он там сам внутре что-то считает и выдаёт наружу готовое движение?

Ага. Причем там драйвер для магнетометра (встроенного) уже есть

Re: dccharacter - Излить посильно

Myp » 10 фев 2012, 13:37

интересно почём такой.

Re: dccharacter - Излить посильно

dccharacter » 10 фев 2012, 13:43

Я думаю баксов 60-80 будет стоить


Rambler\'s Top100 Mail.ru counter