mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2024-11-29 07:24:13 +01:00
OP-1477 - Fix mag exti config, set correct rate, set correct SPI speed for hmc5x83. Note: GPIO is disabled as it seems there is some issues with Exti on PB0
This commit is contained in:
parent
0ffb99f228
commit
ae9f30c729
@ -29,14 +29,22 @@
|
||||
#include <ubx_utils.h>
|
||||
#include <pios_hmc5x83.h>
|
||||
#include "inc/gps9protocol.h"
|
||||
|
||||
#define MAG_RATE_HZ 30
|
||||
extern pios_hmc5x83_dev_t onboard_mag;
|
||||
|
||||
void handleMag()
|
||||
{
|
||||
#ifdef PIOS_HMC5X83_HAS_GPIOS
|
||||
if (!PIOS_HMC5x83_NewDataAvailable(onboard_mag)) {
|
||||
return;
|
||||
}
|
||||
#else
|
||||
static uint32_t lastUpdate = 0;
|
||||
if(PIOS_DELAY_DiffuS(lastUpdate) < (1000000 / MAG_RATE_HZ)){
|
||||
return;
|
||||
}
|
||||
lastUpdate = PIOS_DELAY_GetRaw();
|
||||
#endif
|
||||
static int16_t mag[3];
|
||||
|
||||
if (PIOS_HMC5x83_ReadMag(onboard_mag, mag) == 0) {
|
||||
|
@ -401,6 +401,7 @@ static int32_t pios_hmc5x83_spi_claim_bus(pios_hmc5x83_dev_data_t *dev)
|
||||
if (PIOS_SPI_ClaimBus(dev->port_id) < 0) {
|
||||
return -1;
|
||||
}
|
||||
PIOS_SPI_SetClockSpeed(dev->port_id, SPI_BaudRatePrescaler_16);
|
||||
PIOS_SPI_RC_PinSet(dev->port_id, dev->slave_num, 0);
|
||||
return 0;
|
||||
}
|
||||
|
@ -214,11 +214,11 @@ bool pios_board_mag_handler()
|
||||
}
|
||||
static const struct pios_exti_cfg pios_exti_mag_cfg __exti_config = {
|
||||
.vector = pios_board_mag_handler,
|
||||
.line = EXTI_Line7,
|
||||
.line = EXTI_Line0,
|
||||
.pin = {
|
||||
.gpio = GPIOB,
|
||||
.init = {
|
||||
.GPIO_Pin = GPIO_Pin_7,
|
||||
.GPIO_Pin = GPIO_Pin_0,
|
||||
.GPIO_Speed = GPIO_Speed_Level_3,
|
||||
.GPIO_Mode = GPIO_Mode_IN,
|
||||
.GPIO_OType = GPIO_OType_OD,
|
||||
@ -227,14 +227,14 @@ static const struct pios_exti_cfg pios_exti_mag_cfg __exti_config = {
|
||||
},
|
||||
.irq = {
|
||||
.init = {
|
||||
.NVIC_IRQChannel = EXTI4_15_IRQn,
|
||||
.NVIC_IRQChannel = EXTI0_1_IRQn,
|
||||
.NVIC_IRQChannelPriority = PIOS_IRQ_PRIO_LOW,
|
||||
.NVIC_IRQChannelCmd = ENABLE,
|
||||
},
|
||||
},
|
||||
.exti = {
|
||||
.init = {
|
||||
.EXTI_Line = EXTI_Line7, // matches above GPIO pin
|
||||
.EXTI_Line = EXTI_Line0, // matches above GPIO pin
|
||||
.EXTI_Mode = EXTI_Mode_Interrupt,
|
||||
.EXTI_Trigger = EXTI_Trigger_Rising,
|
||||
.EXTI_LineCmd = ENABLE,
|
||||
|
@ -83,7 +83,7 @@
|
||||
// #define PIOS_MPU6000_ACCEL
|
||||
/* #define PIOS_INCLUDE_HMC5843 */
|
||||
#define PIOS_INCLUDE_HMC5X83
|
||||
#define PIOS_HMC5X83_HAS_GPIOS
|
||||
//#define PIOS_HMC5X83_HAS_GPIOS
|
||||
/* #define PIOS_INCLUDE_BMP085 */
|
||||
/* #define PIOS_INCLUDE_MS5611 */
|
||||
/* #define PIOS_INCLUDE_MPXV */
|
||||
|
Loading…
Reference in New Issue
Block a user