mirror of https://github.com/ArduPilot/ardupilot
ArduCopter: added spi_semaphore to stop conflicts between dataflash and optical flow sensor on APM1
This commit is contained in:
parent
2428cc647c
commit
9392c8cae2
|
@ -171,11 +171,12 @@ APM_RC_APM1 APM_RC;
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// Dataflash
|
// Dataflash
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
#if CONFIG_APM_HARDWARE == APM_HARDWARE_APM2
|
AP_Semaphore spi_semaphore;
|
||||||
AP_Semaphore spi3_semaphore;
|
AP_Semaphore spi3_semaphore;
|
||||||
|
#if CONFIG_APM_HARDWARE == APM_HARDWARE_APM2
|
||||||
DataFlash_APM2 DataFlash(&spi3_semaphore);
|
DataFlash_APM2 DataFlash(&spi3_semaphore);
|
||||||
#else
|
#else
|
||||||
DataFlash_APM1 DataFlash;
|
DataFlash_APM1 DataFlash(&spi_semaphore);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -227,9 +228,9 @@ AP_Compass_HMC5843 compass;
|
||||||
|
|
||||||
#ifdef OPTFLOW_ENABLED
|
#ifdef OPTFLOW_ENABLED
|
||||||
#if CONFIG_APM_HARDWARE == APM_HARDWARE_APM2
|
#if CONFIG_APM_HARDWARE == APM_HARDWARE_APM2
|
||||||
AP_OpticalFlow_ADNS3080 optflow(&spi3_semaphore,OPTFLOW_CS_PIN);
|
AP_OpticalFlow_ADNS3080 optflow(OPTFLOW_CS_PIN);
|
||||||
#else
|
#else
|
||||||
AP_OpticalFlow_ADNS3080 optflow(NULL,OPTFLOW_CS_PIN);
|
AP_OpticalFlow_ADNS3080 optflow(OPTFLOW_CS_PIN);
|
||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
AP_OpticalFlow optflow;
|
AP_OpticalFlow optflow;
|
||||||
|
|
|
@ -51,7 +51,7 @@ static void init_compass()
|
||||||
static void init_optflow()
|
static void init_optflow()
|
||||||
{
|
{
|
||||||
#ifdef OPTFLOW_ENABLED
|
#ifdef OPTFLOW_ENABLED
|
||||||
if( optflow.init(false, &timer_scheduler) == false ) {
|
if( optflow.init(false, &timer_scheduler, &spi_semaphore, &spi3_semaphore) == false ) {
|
||||||
g.optflow_enabled = false;
|
g.optflow_enabled = false;
|
||||||
SendDebug("\nFailed to Init OptFlow ");
|
SendDebug("\nFailed to Init OptFlow ");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue