Subversion Repositories NaviCtrl

Compare Revisions

Ignore whitespace Rev 22 → Rev 23

/tags/V0.1/spi_slave.h
0,0 → 1,83
#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