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 |