mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-01-30 15:52:12 +01:00
CC-9 1. Improve the timings of the attitude estimation
2. Disable FirmareIAP module in CC (somehow causes lockups when also using vTaskDelayUntil in Attitude WTF) 3. Make the SPI bus run a little faster so we can handle the 3200 Hz from accel while running the filter at 333 Hz git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2664 ebee16cc-31ac-478f-84a7-5cbb03baadba
This commit is contained in:
parent
8b2034ea05
commit
3f088bed8d
@ -57,14 +57,7 @@ FLASH_TOOL = OPENOCD
|
|||||||
USE_THUMB_MODE = YES
|
USE_THUMB_MODE = YES
|
||||||
|
|
||||||
# List of modules to include
|
# List of modules to include
|
||||||
MODULES = Telemetry ManualControl Actuator Attitude Stabilization FirmwareIAP
|
MODULES = Telemetry Attitude Stabilization Actuator ManualControl #FirmwareIAP
|
||||||
#Actuator Telemetry ManualControl Stabilization FirmwareIAP
|
|
||||||
|
|
||||||
#MODULES = Telemetry Example
|
|
||||||
#MODULES = Telemetry MK/MKSerial
|
|
||||||
#MODULES = Telemetry
|
|
||||||
#MODULES += Osd/OsdEtStd
|
|
||||||
|
|
||||||
|
|
||||||
# MCU name, submodel and board
|
# MCU name, submodel and board
|
||||||
# - MCU used for compiler-option (-mcpu)
|
# - MCU used for compiler-option (-mcpu)
|
||||||
|
@ -107,7 +107,7 @@ const struct pios_spi_cfg pios_spi_flash_accel_cfg = {
|
|||||||
.SPI_CRCPolynomial = 7,
|
.SPI_CRCPolynomial = 7,
|
||||||
.SPI_CPOL = SPI_CPOL_High,
|
.SPI_CPOL = SPI_CPOL_High,
|
||||||
.SPI_CPHA = SPI_CPHA_2Edge,
|
.SPI_CPHA = SPI_CPHA_2Edge,
|
||||||
.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_16,
|
.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_8,
|
||||||
},
|
},
|
||||||
.use_crc = FALSE,
|
.use_crc = FALSE,
|
||||||
.dma = {
|
.dma = {
|
||||||
|
@ -58,10 +58,10 @@
|
|||||||
#include "pios_flash_w25x.h"
|
#include "pios_flash_w25x.h"
|
||||||
|
|
||||||
// Private constants
|
// Private constants
|
||||||
#define STACK_SIZE_BYTES 740
|
#define STACK_SIZE_BYTES 440
|
||||||
#define TASK_PRIORITY (tskIDLE_PRIORITY+0)
|
#define TASK_PRIORITY (tskIDLE_PRIORITY+3)
|
||||||
|
|
||||||
#define UPDATE_RATE 2 /* ms */
|
#define UPDATE_RATE 3
|
||||||
#define GYRO_NEUTRAL 1665
|
#define GYRO_NEUTRAL 1665
|
||||||
#define GYRO_SCALE (0.008f * 180 / M_PI)
|
#define GYRO_SCALE (0.008f * 180 / M_PI)
|
||||||
|
|
||||||
@ -92,7 +92,7 @@ int32_t AttitudeInitialize(void)
|
|||||||
PIOS_WDG_RegisterFlag(PIOS_WDG_ATTITUDE);
|
PIOS_WDG_RegisterFlag(PIOS_WDG_ATTITUDE);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
static portTickType lastSysTime;
|
||||||
/**
|
/**
|
||||||
* Module thread, should not return.
|
* Module thread, should not return.
|
||||||
*/
|
*/
|
||||||
@ -109,7 +109,7 @@ static void AttitudeTask(void *parameters)
|
|||||||
|
|
||||||
// Main task loop
|
// Main task loop
|
||||||
while (1) {
|
while (1) {
|
||||||
//portTickType lastSysTime;
|
//
|
||||||
PIOS_WDG_UpdateFlag(PIOS_WDG_ATTITUDE);
|
PIOS_WDG_UpdateFlag(PIOS_WDG_ATTITUDE);
|
||||||
|
|
||||||
// TODO: register the adc callback, push the data onto a queue (safe for thread)
|
// TODO: register the adc callback, push the data onto a queue (safe for thread)
|
||||||
@ -118,8 +118,8 @@ static void AttitudeTask(void *parameters)
|
|||||||
updateAttitude();
|
updateAttitude();
|
||||||
|
|
||||||
/* Wait for the next update interval */
|
/* Wait for the next update interval */
|
||||||
//vTaskDelayUntil(&lastSysTime, UPDATE_RATE / portTICK_RATE_MS);
|
vTaskDelayUntil(&lastSysTime, UPDATE_RATE / portTICK_RATE_MS);
|
||||||
vTaskDelay(UPDATE_RATE / portTICK_RATE_MS);
|
//vTaskDelay(UPDATE_RATE / portTICK_RATE_MS);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -172,7 +172,7 @@ void updateSensors()
|
|||||||
AttitudeRawSet(&attitudeRaw);
|
AttitudeRawSet(&attitudeRaw);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define UPDATE_FRAC 0.99f
|
#define UPDATE_FRAC 0.999f
|
||||||
void updateAttitude()
|
void updateAttitude()
|
||||||
{
|
{
|
||||||
AttitudeActualData attitudeActual;
|
AttitudeActualData attitudeActual;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user