Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 1851 → Rev 1852

/trunk/makefile
6,10 → 6,10
#-------------------------------------------------------------------
VERSION_MAJOR = 0
VERSION_MINOR = 83
VERSION_PATCH = 3
VERSION_PATCH = 4
VERSION_SERIAL_MAJOR = 11 # Serial Protocol
VERSION_SERIAL_MINOR = 0 # Serial Protocol
NC_SPI_COMPATIBLE = 17 # Navi-Kompatibilität
NC_SPI_COMPATIBLE = 18 # Navi-Kompatibilität
#-------------------------------------------------------------------
 
# get SVN revision
/trunk/spi.c
25,6 → 25,7
unsigned char SPI_CommandCounter = 0;
unsigned char NC_ErrorCode = 0;
signed int POI_KameraNick = 0; // in 0,1°
vector16_t MagVec = {0,0,0};
 
#ifdef USE_SPI_COMMUNICATION
 
271,14 → 272,19
 
if(SPI_RxDataValid)
{
NaviDataOkay = 250;
CalculateCompassTimer = 1;
if(abs(FromNaviCtrl.GPS_Nick) < 512 && abs(FromNaviCtrl.GPS_Roll) < 512 && (EE_Parameter.GlobalConfig & CFG_GPS_AKTIV))
{
GPS_Nick = FromNaviCtrl.GPS_Nick;
GPS_Roll = FromNaviCtrl.GPS_Roll;
}
NaviDataOkay = 250;
CalculateCompassTimer = 1;
if(abs(FromNaviCtrl.GPS_Nick) < 512 && abs(FromNaviCtrl.GPS_Roll) < 512 && (EE_Parameter.GlobalConfig & CFG_GPS_AKTIV))
{
GPS_Nick = FromNaviCtrl.GPS_Nick;
GPS_Roll = FromNaviCtrl.GPS_Roll;
}
 
// update compass readings
MagVec.x = FromNaviCtrl.MagVecX;
MagVec.y = FromNaviCtrl.MagVecY;
MagVec.z = FromNaviCtrl.MagVecZ;
 
if(FromNaviCtrl.CompassValue <= 360) KompassValue = FromNaviCtrl.CompassValue;
KompassRichtung = ((540 + KompassValue - KompassSollWert) % 360) - 180;
 
296,7 → 302,7
FromNC_Rotate_S = FromNaviCtrl.Param.Byte[6];
// = FromNaviCtrl.Param.Byte[7]; noch frei
POI_KameraNick = (POI_KameraNick + FromNaviCtrl.Param.sInt[5]) / 2; // Nickwinkel
if(CareFree && FromNaviCtrl.Param.sInt[4] >= 0)
if(CareFree && FromNaviCtrl.Param.sInt[4] >= 0)
{
KompassSollWert = FromNaviCtrl.Param.sInt[4]; // bei Carefree kann NC den Kompass-Sollwinkel vorgeben
}
317,7 → 323,7
GPSInfo.NumOfSats = FromNaviCtrl.Param.Byte[1];
GPSInfo.SatFix = FromNaviCtrl.Param.Byte[2];
GPSInfo.Speed = FromNaviCtrl.Param.Byte[3];
GPSInfo.HomeDistance = FromNaviCtrl.Param.Int[2];
GPSInfo.HomeDistance = FromNaviCtrl.Param.Int[2];
GPSInfo.HomeBearing = FromNaviCtrl.Param.sInt[3];
PPM_in[25] = (signed char) FromNaviCtrl.Param.Byte[8]; // WP_EVENT-Channel-Value
break;
/trunk/spi.h
3,6 → 3,7
#define _SPI_H
 
#include <util/delay.h>
#include "vector.h"
 
#define USE_SPI_COMMUNICATION
 
75,6 → 76,7
signed int GyroNick;
signed int GyroRoll;
signed int GyroGier;
unsigned int FCStatus;
union
{
unsigned char Byte[12];
99,6 → 101,9
signed int GPS_Roll;
signed int GPS_Gier;
signed int CompassValue;
signed int MagVecX;
signed int MagVecY;
signed int MagVecZ;
signed int Status;
unsigned int BeepTime;
union
170,6 → 175,7
extern void UpdateSPI_Buffer(void);
extern void SPI_TransmitByte(void);
extern signed int POI_KameraNick;
extern vector16_t MagVec;
#else
 
 
/trunk/vector.h
0,0 → 1,19
#ifndef _VECTOR_H
#define _VECTOR_H
 
typedef struct
{
int32_t x;
int32_t y;
int32_t z;
} __attribute__((packed)) vector32_t;
 
typedef struct
{
int16_t x;
int16_t y;
int16_t z;
} __attribute__((packed)) vector16_t;
 
 
#endif //_VECTOR_H