Blame view

RIOT/boards/microbit/include/periph_conf.h 2.97 KB
a752c7ab   elopes   add first test an...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
  /*
   * Copyright (C) 2016 Freie Universitรคt Berlin
   *
   * This file is subject to the terms and conditions of the GNU Lesser
   * General Public License v2.1. See the file LICENSE in the top level
   * directory for more details.
   */
  
  /**
   * @ingroup     boards_microbit
   * @{
   *
   * @file
   * @brief       Peripheral configuration for the BBC micro:bit
   *
   * @author      Hauke Petersen <hauke.petersen@fu-berlin.de>
   */
  
  #ifndef PERIPH_CONF_H
  #define PERIPH_CONF_H
  
  #include "periph_cpu.h"
  
  #ifdef __cplusplus
  extern "C" {
  #endif
  
  /**
   * @name    Clock configuration
   *
   * @note    The radio will not work with the internal RC oscillator!
   *
   * @{
   */
  #define CLOCK_HFCLK         (16U)           /* set to  0: internal RC oscillator
                                                        16: 16MHz crystal
                                                        32: 32MHz crystal */
  #define CLOCK_LFCLK         (0)             /* set to  0: internal RC oscillator
                                               *         1: 32.768 kHz crystal
                                               *         2: derived from HFCLK */
  /** @} */
  
  /**
   * @name Timer configuration
   * @{
   */
  static const timer_conf_t timer_config[] = {
      {
          .dev      = NRF_TIMER0,
          .channels =  3,
          .bitmode  = TIMER_BITMODE_BITMODE_24Bit,
          .irqn     = TIMER0_IRQn
      },
      {
          .dev      = NRF_TIMER1,
          .channels = 3,
          .bitmode  = TIMER_BITMODE_BITMODE_16Bit,
          .irqn     = TIMER1_IRQn
      },
      {
          .dev      = NRF_TIMER2,
          .channels = 3,
          .bitmode  = TIMER_BITMODE_BITMODE_16Bit,
          .irqn     = TIMER2_IRQn
      }
  };
  
  #define TIMER_0_ISR         isr_timer0
  #define TIMER_1_ISR         isr_timer1
  #define TIMER_2_ISR         isr_timer2
  
  #define TIMER_NUMOF         (sizeof(timer_config) / sizeof(timer_config[0]))
  /** @} */
  
  /**
   * @name    Real time counter configuration
   * @{
   */
  #define RTT_NUMOF           (1U)
  #define RTT_DEV             (1)             /* NRF_RTC1 */
  #define RTT_MAX_VALUE       (0x00ffffff)
  #define RTT_FREQUENCY       (1024)
  /** @} */
  
  /**
   * @name   UART configuration
   * @{
   */
  #define UART_NUMOF          (1U)
  /* UART pin configuration */
  #define UART_HWFLOWCTRL     0
  #define UART_PIN_RX         25
  #define UART_PIN_TX         24
  /** @} */
  
  /**
   * @name   I2C (TWI) configuration
   * @{
   */
  static const i2c_conf_t i2c_config[] = {
      {
          .dev     = NRF_TWI0,
          .pin_scl = 0,
          .pin_sda = 30,
          .ppi     = 0
      }
  };
  
  #define I2C_NUMOF           (sizeof(i2c_config) / sizeof(i2c_config[0]))
  /** @} */
  
  /**
   * @name   ADC configuration
   *
   * The configuration consists simply of a list of channels that should be used
   * @{
   */
  #define ADC_NUMOF          (0)
  /** @} */
  
  /**
   * @name   Radio device configuration
   *
   * The radio is not guarded by a NUMOF define, as the radio is selected by its
   * own module in the build system.
   * @{
   */
  #define RADIO_IRQ_PRIO      1
  /** @} */
  
  #ifdef __cplusplus
  }
  #endif
  
  #endif /* PERIPH_CONF_H */
  /** @} */