moved QEI to LLD

This commit is contained in:
Stephane D'Alu 2016-07-10 21:46:46 +02:00
parent e5430a6f71
commit 52107b2ccb
8 changed files with 25 additions and 8 deletions

View File

@ -35,7 +35,7 @@
#endif #endif
#define HAL_USE_QEI FALSE #define HAL_USE_QEI TRUE
/*===========================================================================*/ /*===========================================================================*/

View File

@ -43,6 +43,8 @@
#define NRF5_RNG_USE_RNG0 TRUE #define NRF5_RNG_USE_RNG0 TRUE
#define NRF5_GPT_USE_TIMER0 TRUE #define NRF5_GPT_USE_TIMER0 TRUE
#define NRF5_QEI_USE_QDEC0 TRUE
#define NRF5_QEI_USE_LED FALSE
#define WDG_USE_TIMEOUT_CALLBACK TRUE #define WDG_USE_TIMEOUT_CALLBACK TRUE

View File

@ -130,10 +130,8 @@ typedef NRF_GPIO_Type *ioportid_t;
*/ */
#if NRF_SERIES == 51 #if NRF_SERIES == 51
#define IOPORT1 NRF_GPIO #define IOPORT1 NRF_GPIO
#elif NRF_SERIES == 52
#define IOPORT1 NRF_P0
#else #else
#error "Unknown NRF_SERIES" #define IOPORT1 NRF_P0
#endif #endif
/*===========================================================================*/ /*===========================================================================*/

View File

@ -160,19 +160,31 @@ void qei_lld_start(QEIDriver *qeip) {
#endif #endif
/* Select pin for Phase A and Phase B */ /* Select pin for Phase A and Phase B */
#if NRF_SERIES == 51
qdec->PSELA = PAL_PAD(cfg->phase_a); qdec->PSELA = PAL_PAD(cfg->phase_a);
qdec->PSELB = PAL_PAD(cfg->phase_b); qdec->PSELB = PAL_PAD(cfg->phase_b);
#else
qdec->PSEL.A = PAL_PAD(cfg->phase_a);
qdec->PSEL.B = PAL_PAD(cfg->phase_b);
#endif
/* Select (optional) pin for LED, and configure it */ /* Select (optional) pin for LED, and configure it */
#if NRF5_QEI_USE_LED == TRUE #if NRF5_QEI_USE_LED == TRUE
#if NRF_SERIES == 51
qdec->PSELLED = PAL_PAD(cfg->led); qdec->PSELLED = PAL_PAD(cfg->led);
#else
qdec->PSEL.LED = PAL_PAD(cfg->led);
#endif
qdec->LEDPOL = ((cfg->led_polarity == QEI_LED_POLARITY_LOW) qdec->LEDPOL = ((cfg->led_polarity == QEI_LED_POLARITY_LOW)
? QDEC_LEDPOL_LEDPOL_ActiveLow ? QDEC_LEDPOL_LEDPOL_ActiveLow
: QDEC_LEDPOL_LEDPOL_ActiveHigh) : QDEC_LEDPOL_LEDPOL_ActiveHigh)
<< QDEC_LEDPOL_LEDPOL_Pos; << QDEC_LEDPOL_LEDPOL_Pos;
qdec->LEDPRE = cfg->led_warming; qdec->LEDPRE = cfg->led_warming;
#else #else
#if NRF_SERIES == 51
qdec->PSELLED = (uint32_t)-1; qdec->PSELLED = (uint32_t)-1;
#else
qdec->PSEL.LED = (uint32_t)-1;
#endif
#endif #endif
/* Set sampling resolution and debouncing */ /* Set sampling resolution and debouncing */

View File

@ -38,7 +38,7 @@ ifneq ($(findstring HAL_USE_PWM TRUE,$(HALCONF)),)
PLATFORMSRC += ${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/NRF51822/hal_pwm_lld.c PLATFORMSRC += ${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/NRF51822/hal_pwm_lld.c
endif endif
ifneq ($(findstring HAL_USE_QEI TRUE,$(HALCONF)),) ifneq ($(findstring HAL_USE_QEI TRUE,$(HALCONF)),)
PLATFORMSRC += ${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/NRF51822/hal_qei_lld.c PLATFORMSRC += ${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/LLD/hal_qei_lld.c
endif endif
else else
PLATFORMSRC = ${CHIBIOS}/os/hal/ports/common/ARMCMx/nvic.c \ PLATFORMSRC = ${CHIBIOS}/os/hal/ports/common/ARMCMx/nvic.c \
@ -55,7 +55,7 @@ PLATFORMSRC = ${CHIBIOS}/os/hal/ports/common/ARMCMx/nvic.c \
${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/LLD/hal_wdg_lld.c \ ${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/LLD/hal_wdg_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/LLD/hal_rng_lld.c \ ${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/LLD/hal_rng_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/NRF51822/hal_pwm_lld.c \ ${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/NRF51822/hal_pwm_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/NRF51822/hal_qei_lld.c ${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/LLD/hal_qei_lld.c
endif endif
# Required include directories # Required include directories

View File

@ -21,6 +21,9 @@ endif
ifneq ($(findstring HAL_USE_RNG TRUE,$(HALCONF)),) ifneq ($(findstring HAL_USE_RNG TRUE,$(HALCONF)),)
PLATFORMSRC += ${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/LLD/hal_rng_lld.c PLATFORMSRC += ${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/LLD/hal_rng_lld.c
endif endif
ifneq ($(findstring HAL_USE_QEI TRUE,$(HALCONF)),)
PLATFORMSRC += ${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/LLD/hal_qei_lld.c
endif
else else
PLATFORMSRC = ${CHIBIOS}/os/hal/ports/common/ARMCMx/nvic.c \ PLATFORMSRC = ${CHIBIOS}/os/hal/ports/common/ARMCMx/nvic.c \
${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/NRF52832/hal_lld.c \ ${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/NRF52832/hal_lld.c \
@ -29,7 +32,8 @@ PLATFORMSRC = ${CHIBIOS}/os/hal/ports/common/ARMCMx/nvic.c \
${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/LLD/hal_st_lld.c \ ${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/LLD/hal_st_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/LLD/hal_gpt_lld.c \ ${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/LLD/hal_gpt_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/LLD/hal_wdg_lld.c \ ${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/LLD/hal_wdg_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/LLD/hal_rng_lld.c ${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/LLD/hal_rng_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/LLD/hal_qei_lld.c
endif endif
# Required include directories # Required include directories

View File

@ -4,3 +4,4 @@
https://devzone.nordicsemi.com/question/86564/nrf52-write-buffer/ https://devzone.nordicsemi.com/question/86564/nrf52-write-buffer/
* implement pin-reset, swo trace, trace pin configuration * implement pin-reset, swo trace, trace pin configuration
* implement errata (see system_nrf52.c) * implement errata (see system_nrf52.c)
* check GPIO DETECTMODE and LATCH