Subversion Repositories NaviCtrl

Rev

Rev 1 | Blame | Compare with Previous | Last modification | View Log | RSS feed

#ifndef _SPI_H
#define _SPI_H

#define SPI_PROTOCOL_COMP   1


#define SS_PIN GPIO_ReadBit(GPIO2, GPIO_Pin_7)

// IMPORTANT: no syncbytes in structure !
#define SPI_CMD_USER             10
#define SPI_CMD_STICK            11
#define SPI_CMD_CAL_COMPASS  12

struct str_FromFlightCtrl
 {
         u8   Command;
         s16  IntegralNick;
         s16  IntegralRoll;
         s16  AccNick;
         s16  AccRoll;
         s16  GyroCompass;
         s16  GyroNick;
         s16  GyroRoll;
         s16  GyroGier;          
         union  
         { u8  Byte[12];
           s8 sByte[12];
           s16  Int[6];
           float Float[3];
           int Long[3];
         } Param;
         u8 Chksum;
 } __attribute__((packed));
 
#define SPI_CMD_OSD_DATA         100
#define SPI_CMD_GPS_POS          101
#define SPI_CMD_GPS_TARGET   102

struct str_ToFlightCtrl
 {
  unsigned char Sync1, Sync2;
  unsigned char Command;
  s16 GPS_Nick;
  s16 GPS_Roll;
  s16 GPS_Gier;
  s16 CompassValue;
  s16 Status;
  unsigned char BeepTime;
         union  
         { u8 Byte[12];
           s16  Int[6];
           float Float[3];
           int Long[3];
         } Param;
  unsigned char Chksum;
 } __attribute__((packed));
 

#define X_AXIS 1
#define Y_AXIS 2
#define Z_AXIS 3



struct str_MicroMag
{
 unsigned char ReadAxis, WaitingforMeasurement;
 s16 Axis[3];
 s16 Heading;
} __attribute__((packed));


extern struct str_FromFlightCtrl   FromFlightCtrl;
extern struct str_ToFlightCtrl     ToFlightCtrl;

extern volatile struct str_MicroMag  MicroMag;

extern s16 GPS_Nick, GPS_Roll, CompassValue;

extern void SPI0_Init(void);
extern void SPI_CheckSlaveSelect(void);
extern void UpdateSPI_Buffer(void);
#endif