add real time counter
This commit is contained in:
parent
b65dfdec76
commit
f0e2daa5c7
@ -22,6 +22,11 @@ SRC_FILES += \
|
||||
$(SDK_ROOT)/modules/nrfx/mdk/system_nrf52840.c \
|
||||
$(SDK_ROOT)/external/segger_rtt/SEGGER_RTT.c \
|
||||
$(SDK_ROOT)/external/segger_rtt/SEGGER_RTT_printf.c \
|
||||
$(SDK_ROOT)/integration/nrfx/legacy/nrf_drv_clock.c \
|
||||
$(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_rtc.c \
|
||||
$(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_clock.c \
|
||||
|
||||
|
||||
|
||||
# Include folders common to all targets
|
||||
INC_FOLDERS += \
|
||||
@ -44,6 +49,9 @@ INC_FOLDERS += \
|
||||
$(SDK_ROOT)/external/segger_rtt \
|
||||
$(PROJ_DIR) \
|
||||
$(SDK_ROOT)/components/libraries/util \
|
||||
$(SDK_ROOT)/integration/nrfx/legacy \
|
||||
$(SDK_ROOT)/modules/nrfx/drivers/include \
|
||||
|
||||
|
||||
# Libraries common to all targets
|
||||
LIB_FILES += \
|
||||
|
42
nrf52840/app_config.h
Normal file
42
nrf52840/app_config.h
Normal file
@ -0,0 +1,42 @@
|
||||
// <h> segger_rtt - SEGGER RTT
|
||||
|
||||
//==========================================================
|
||||
// <o> SEGGER_RTT_CONFIG_BUFFER_SIZE_UP - Size of upstream buffer.
|
||||
// <i> Note that either @ref NRF_LOG_BACKEND_RTT_OUTPUT_BUFFER_SIZE
|
||||
// <i> or this value is actually used. It depends on which one is bigger.
|
||||
|
||||
#ifndef SEGGER_RTT_CONFIG_BUFFER_SIZE_UP
|
||||
#define SEGGER_RTT_CONFIG_BUFFER_SIZE_UP 64
|
||||
#endif
|
||||
|
||||
// <o> SEGGER_RTT_CONFIG_MAX_NUM_UP_BUFFERS - Size of upstream buffer.
|
||||
#ifndef SEGGER_RTT_CONFIG_MAX_NUM_UP_BUFFERS
|
||||
#define SEGGER_RTT_CONFIG_MAX_NUM_UP_BUFFERS 2
|
||||
#endif
|
||||
|
||||
// <o> SEGGER_RTT_CONFIG_BUFFER_SIZE_DOWN - Size of upstream buffer.
|
||||
#ifndef SEGGER_RTT_CONFIG_BUFFER_SIZE_DOWN
|
||||
#define SEGGER_RTT_CONFIG_BUFFER_SIZE_DOWN 16
|
||||
#endif
|
||||
|
||||
// <o> SEGGER_RTT_CONFIG_MAX_NUM_DOWN_BUFFERS - Size of upstream buffer.
|
||||
#ifndef SEGGER_RTT_CONFIG_MAX_NUM_DOWN_BUFFERS
|
||||
#define SEGGER_RTT_CONFIG_MAX_NUM_DOWN_BUFFERS 2
|
||||
#endif
|
||||
|
||||
// <o> SEGGER_RTT_CONFIG_DEFAULT_MODE - RTT behavior if the buffer is full.
|
||||
|
||||
|
||||
// <i> The following modes are supported:
|
||||
// <i> - SKIP - Do not block, output nothing.
|
||||
// <i> - TRIM - Do not block, output as much as fits.
|
||||
// <i> - BLOCK - Wait until there is space in the buffer.
|
||||
// <0=> SKIP
|
||||
// <1=> TRIM
|
||||
// <2=> BLOCK_IF_FIFO_FULL
|
||||
|
||||
#ifndef SEGGER_RTT_CONFIG_DEFAULT_MODE
|
||||
#define SEGGER_RTT_CONFIG_DEFAULT_MODE 2
|
||||
#endif
|
||||
|
||||
|
@ -51,36 +51,93 @@
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include "nrf.h"
|
||||
#include "nrf_gpio.h"
|
||||
#include "nrf_delay.h"
|
||||
#include "boards.h"
|
||||
|
||||
#include "nrf_drv_rtc.h"
|
||||
#include "nrf_drv_clock.h"
|
||||
|
||||
#include "SEGGER_RTT.h"
|
||||
|
||||
/**
|
||||
* @brief Function for application main entry.
|
||||
|
||||
#define COMPARE_COUNTERTIME (3UL) /**< Get Compare event COMPARE_TIME seconds after the counter starts from 0. */
|
||||
|
||||
#ifdef BSP_LED_0
|
||||
#define TICK_EVENT_OUTPUT BSP_LED_0 /**< Pin number for indicating tick event. */
|
||||
#endif
|
||||
#ifndef TICK_EVENT_OUTPUT
|
||||
#error "Please indicate output pin"
|
||||
#endif
|
||||
#ifdef BSP_LED_1
|
||||
#define COMPARE_EVENT_OUTPUT BSP_LED_1 /**< Pin number for indicating compare event. */
|
||||
#endif
|
||||
#ifndef COMPARE_EVENT_OUTPUT
|
||||
#error "Please indicate output pin"
|
||||
#endif
|
||||
|
||||
const nrf_drv_rtc_t rtc = NRF_DRV_RTC_INSTANCE(0); /**< Declaring an instance of nrf_drv_rtc for RTC0. */
|
||||
|
||||
|
||||
|
||||
/** @brief Function starting the internal LFCLK XTAL oscillator.
|
||||
*/
|
||||
static void lfclk_config(void)
|
||||
{
|
||||
ret_code_t err_code = nrf_drv_clock_init();
|
||||
APP_ERROR_CHECK(err_code);
|
||||
|
||||
nrf_drv_clock_lfclk_request(NULL);
|
||||
}
|
||||
|
||||
static void rtc_config(void)
|
||||
{
|
||||
uint32_t err_code;
|
||||
|
||||
//Initialize RTC instance
|
||||
nrf_drv_rtc_config_t config = NRF_DRV_RTC_DEFAULT_CONFIG;
|
||||
config.prescaler = 32;
|
||||
err_code = nrf_drv_rtc_init(&rtc, &config, NULL);
|
||||
APP_ERROR_CHECK(err_code);
|
||||
|
||||
//Enable tick event & interrupt
|
||||
/*nrf_drv_rtc_tick_enable(&rtc,true);*/
|
||||
|
||||
/*//Set compare channel to trigger interrupt after COMPARE_COUNTERTIME seconds*/
|
||||
/*err_code = nrf_drv_rtc_cc_set(&rtc,0,COMPARE_COUNTERTIME * 8,true);*/
|
||||
/*APP_ERROR_CHECK(err_code);*/
|
||||
|
||||
//Power on RTC instance
|
||||
nrf_drv_rtc_enable(&rtc);
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
/* Configure board. */
|
||||
bsp_board_init(BSP_INIT_LEDS);
|
||||
lfclk_config();
|
||||
rtc_config();
|
||||
SEGGER_RTT_printf(0, "Hello FIDO2\n");
|
||||
/*SEGGER_RTT_Init();*/
|
||||
|
||||
uint32_t count;
|
||||
int i = 0;
|
||||
|
||||
/* Toggle LEDs. */
|
||||
while (true)
|
||||
while (1)
|
||||
{
|
||||
i++;
|
||||
for (int i = 0; i < LEDS_NUMBER; i++)
|
||||
{
|
||||
bsp_board_led_invert(i);
|
||||
nrf_delay_ms(100);
|
||||
nrf_delay_ms(25);
|
||||
}
|
||||
count = nrf_drv_rtc_counter_get(&rtc);
|
||||
|
||||
printf("toggle\r\n");
|
||||
SEGGER_RTT_SetTerminal(0);
|
||||
SEGGER_RTT_printf(0, "Hello World %d!\n", i);
|
||||
SEGGER_RTT_printf(0, "Hello World %d!\n", count);
|
||||
SEGGER_RTT_SetTerminal(1);
|
||||
SEGGER_RTT_printf(0, "Hello World %d!\n", i*i);
|
||||
SEGGER_RTT_printf(0, "Hello World %d!\n", i);
|
||||
}
|
||||
}
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user