Hallo Zusammen,

irgendwie bekomme ich von meinem ADIS16265 nur Blödsinn gemeldet.

So frage ich derzeit zu Testzwecken der Kommunikation die Temperatur und die Spannung mit ab.

Die Auswertung der Daten erfolgt wie folgt:
Code:
                switch ( m_Active_Command )
                {
                    case ADIS16265_GYRO_OUT:
                        if((SPIReceiveBuffer[0] & 0x20) > 0 )            // Do we have a negative value
                            {
                            iValue=((SPIReceiveBuffer[0] & 0x3F) * 256) + SPIReceiveBuffer[1];
                            iValue*=-1;                                    // we have a negative value of angle speed
                            }
                        else
                            {
                            iValue=((SPIReceiveBuffer[0] & 0x3F) * 256) + SPIReceiveBuffer[1];                                
                            }    
                        m_DigitalGyroRawValue = (double) (iValue * 0.7326) * (M_PI / 180.0);
                        break;

                    case ADIS16265_TEMP_OUT:
                        if((SPIReceiveBuffer[0] & 0xF) > 3 )            // Do we have a negative value
                            {
                            iValue=((SPIReceiveBuffer[0] & 0x3F) * 256) + SPIReceiveBuffer[1];
                            iValue= 4095 - iValue + 1; 
                            }
                        else
                            {
                            iValue=((SPIReceiveBuffer[0] & 0x3F) * 256) + SPIReceiveBuffer[1];
                            }
                        m_ADIS16265_Temperature = 25.0 + (iValue * 0.1453);
                        break;

                    case ADIS16265_ANGL_OUT:
                        iValue=(SPIReceiveBuffer[0] & 0x3F ) * 256 + SPIReceiveBuffer[1];
                        m_DigitalOrientationAngle= (double)(iValue * 0.03663) * (M_PI / 180.0);
                        break;

                    case ADIS16265_GYRO_OFF:
                        break;
                    case ADIS16265_ALM_CTRL:
                        m_ADIS16265_AlarmControl=SPIReceiveBuffer[0] * 256 + SPIReceiveBuffer[1];    
                        break;
                    case ADIS16265_GLOB_CMD:
                        break;

                    case ADIS16265_SUPPLY_OUT:
                        iValue= (int) ((SPIReceiveBuffer[0] & 0x0F) * 256 + SPIReceiveBuffer[1] );
                        m_ADIS16265_Voltage = ((double)(iValue * 0.00183));
                        break;

                }
Folgende Anzeigen habe ich für die Wert
Spannung: 1.87392 Volt statt ca. 4.96 Volt
Temperatur: -1314.084 Grad Celsius statt irgendwas um die 20-25 Grad.
Winkelangabe: 8.51055 Grad statt 0, da noch nicht bewegt und keine Vorgaben
Alarm Status: 0111010000000000 diese macht jedoch Sinn entsprechend der Dok.
Hat jemand das Teil am Rennen und kann mir einen Tip geben.


Gruss R.