Jacob,

Check nrf5_sdk/components/libraries/pwm for soft-pwm implementation by NordicSemi. IMO, this is a good start point.

BR,
Andrey


On 15.05.2017 00:24, Jacob Rosenthal wrote:
So a soft pwm on top of one of the free timers sounds like the best way to
proceed...

On Sun, May 14, 2017 at 2:20 PM, will sanfilippo <wi...@runtime.io> wrote:

There are other timers you could use; you do not need to use the low power
timer. A callout would not be a good idea imo.

On May 14, 2017, at 1:35 PM, Jacob Rosenthal <jakerosent...@gmail.com>
wrote:
Looks like lfclk is now used for low power mode you added, so maybe thats
not a good solution either.

I wonder how decent a soft pwm with just callouts could be.

On Sun, May 14, 2017 at 10:25 AM, will sanfilippo <wi...@runtime.io>
wrote:
Not quite sure myself off the top of my head. I am not the best newt
tool
person. I can try to take a look at it later today if you cant figure it
out before then.


On May 14, 2017, at 10:00 AM, Jacob Rosenthal <jakerosent...@gmail.com
wrote:
Good point. Ive obviously seen pwm implementaitons on nrf51 many times.
Im
guessing theyre using the 'low power pwm" driver I stumbled across that
appears to be using the lfclk
https://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.
nordic.infocenter.sdk51.v10.0.0%2Flow_power_pwm_example.html
Sameish question, I tried to port that example with the same problem,
Im
having trouble figuring out how to get newt to see the SDK files

I tried adding low_power_pwm to ign_files and  src_dirs

pkg.ign_files.BSP_NRF51:
   - "nrf_saadc.c"
   - "nrf_drv_saadc.c"
   - "nrf_drv_comp.c"
   - "nrf_drv_i2s.c"
   - "nrf_drv_pdm.c"
   - "nrf_drv_pwm.c"
   - "nrf_drv_spis.c"
   - "nrf_drv_twis.c"
   - "spi_5W_master.c"
   - "pstorage*"
   - "sdk_mapped_flags.c"
   - "low_power_pwm.c"

pkg.ign_dirs:
   - "deprecated"

pkg.src_dirs:
   - "src/ext/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/"
   - "src/ext/nRF5_SDK_11.0.0_89a8197/components/libraries/fifo/"
   - "src/ext/nRF5_SDK_11.0.0_89a8197/components/libraries/util/"
   - "src/ext/nRF5_SDK_11.0.0_89a8197/components/libraries/
low_power_pwm/"
Error:
/Users/jacobrosenthal/Downloads/chippd3/bin/targets/
split-central-misfit-flash/app/hw/drivers/lf_pwm/hw_
drivers_lf_pwm.a(lf_pwm.o):
In function `low_power_init':
/Users/jacobrosenthal/Downloads/chippd3/repos/
mynewt-nordic/hw/drivers/lf_pwm/src/lf_pwm.c:127:
undefined reference to `low_power_pwm_init'
/Users/jacobrosenthal/Downloads/chippd3/repos/
mynewt-nordic/hw/drivers/lf_pwm/src/lf_pwm.c:129:
undefined reference to `low_power_pwm_duty_set'
/Users/jacobrosenthal/Downloads/chippd3/repos/
mynewt-nordic/hw/drivers/lf_pwm/src/lf_pwm.c:154:
undefined reference to `low_power_pwm_start'
/Users/jacobrosenthal/Downloads/chippd3/bin/targets/
split-central-misfit-flash/app/hw/drivers/lf_pwm/hw_
drivers_lf_pwm.a(lf_pwm.o):
In function `lf_pwm_init':
/Users/jacobrosenthal/Downloads/chippd3/repos/
mynewt-nordic/hw/drivers/lf_pwm/src/lf_pwm.c:182:
undefined reference to `app_timer_init'
collect2: error: ld returned 1 exit status


On Sun, May 14, 2017 at 9:00 AM, will sanfilippo <wi...@runtime.io>
wrote:
Jacob:

Does the nrf51 have a PWM peripheral? I do not think it does. I looked
at
the chip spec and nrf51.h and there is no PWM peripheral like the
nrf52
in
either.


On May 13, 2017, at 7:46 PM, Jacob Rosenthal <
jakerosent...@gmail.com>
wrote:
Im attempting to write a pwm api and nrf51 driver. Im mostly just
stubbing
right now based on the adc driver, and have mynewt pwm driver
stubbed,
and
am now stubbing mynewt_nordic/hw/drivers/pwm_nrf51 which includes
nrf_drv_pwm.h and nrf_pwm.h from the sdk but thats giving tons of
errors.
Maybe something needs to be added to the mcu/nordic_sdk?






Error: In file included from
repos/apache-mynewt-core/libc/baselibc/include/inttypes.h:10:0,

               from
repos/apache-mynewt-core/hw/hal/include/hal/hal_bsp.h:27,

               from
repos/mynewt-nordic/hw/drivers/pwm/pwm_nrf51/src/pwm_nrf51.c:19:

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:56:39:
error: unknown type name 'NRF_PWM_Type'

   NRF_PWM_TASK_STOP      = offsetof(NRF_PWM_Type, TASKS_STOP),
///< Stops PWM pulse generation on all channels at the end of the
current
PWM period, and stops the sequence playback.

                                     ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:57:39:
error: unknown type name 'NRF_PWM_Type'

   NRF_PWM_TASK_SEQSTART0 = offsetof(NRF_PWM_Type, TASKS_SEQSTART[0]),
///< Starts playback of sequence 0.

                                     ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:58:39:
error: unknown type name 'NRF_PWM_Type'

   NRF_PWM_TASK_SEQSTART1 = offsetof(NRF_PWM_Type, TASKS_SEQSTART[1]),
///< Starts playback of sequence 1.

                                     ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:59:39:
error: unknown type name 'NRF_PWM_Type'

   NRF_PWM_TASK_NEXTSTEP  = offsetof(NRF_PWM_Type, TASKS_NEXTSTEP)
///< Steps by one value in the current sequence if the decoder is set
to
@ref NRF_PWM_STEP_TRIGGERED mode.

                                     ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:69:43:
error: unknown type name 'NRF_PWM_Type'

   NRF_PWM_EVENT_STOPPED      = offsetof(NRF_PWM_Type,
EVENTS_STOPPED),
  ///< Response to STOP task, emitted when PWM pulses are no longer
generated.

                                         ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:70:43:
error: unknown type name 'NRF_PWM_Type'

   NRF_PWM_EVENT_SEQSTARTED0  = offsetof(NRF_PWM_Type,
EVENTS_SEQSTARTED[0]), ///< First PWM period started on sequence 0.

                                         ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:71:43:
error: unknown type name 'NRF_PWM_Type'

   NRF_PWM_EVENT_SEQSTARTED1  = offsetof(NRF_PWM_Type,
EVENTS_SEQSTARTED[1]), ///< First PWM period started on sequence 1.

                                         ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:72:43:
error: unknown type name 'NRF_PWM_Type'

   NRF_PWM_EVENT_SEQEND0      = offsetof(NRF_PWM_Type,
EVENTS_SEQEND[0]),
  ///< Emitted at the end of every sequence 0 when its last value has
been read from RAM.

                                         ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:73:43:
error: unknown type name 'NRF_PWM_Type'

   NRF_PWM_EVENT_SEQEND1      = offsetof(NRF_PWM_Type,
EVENTS_SEQEND[1]),
  ///< Emitted at the end of every sequence 1 when its last value has
been read from RAM.

                                         ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:74:43:
error: unknown type name 'NRF_PWM_Type'

   NRF_PWM_EVENT_PWMPERIODEND = offsetof(NRF_PWM_Type,
EVENTS_PWMPERIODEND),  ///< Emitted at the end of each PWM period.

                                         ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:75:43:
error: unknown type name 'NRF_PWM_Type'

   NRF_PWM_EVENT_LOOPSDONE    = offsetof(NRF_PWM_Type,
EVENTS_LOOPSDONE)
  ///< Concatenated sequences have been played the requested number of
times.

                                         ^

In file included from
repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/pwm/nrf_drv_pwm.h:30:0,
               from
repos/mynewt-nordic/hw/drivers/pwm/pwm_nrf51/src/pwm_nrf51.c:33:

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:84:37:
error: 'PWM_INTENSET_STOPPED_Msk' undeclared here (not in a function)

   NRF_PWM_INT_STOPPED_MASK      = PWM_INTENSET_STOPPED_Msk,      ///<
Interrupt on STOPPED event.

                                   ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:85:37:
error: 'PWM_INTENSET_SEQSTARTED0_Msk' undeclared here (not in a
function)
   NRF_PWM_INT_SEQSTARTED0_MASK  = PWM_INTENSET_SEQSTARTED0_Msk,  ///<
Interrupt on SEQSTARTED[0] event.

                                   ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:86:37:
error: 'PWM_INTENSET_SEQSTARTED1_Msk' undeclared here (not in a
function)
   NRF_PWM_INT_SEQSTARTED1_MASK  = PWM_INTENSET_SEQSTARTED1_Msk,  ///<
Interrupt on SEQSTARTED[1] event.

                                   ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:87:37:
error: 'PWM_INTENSET_SEQEND0_Msk' undeclared here (not in a function)

   NRF_PWM_INT_SEQEND0_MASK      = PWM_INTENSET_SEQEND0_Msk,      ///<
Interrupt on SEQEND[0] event.

                                   ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:88:37:
error: 'PWM_INTENSET_SEQEND1_Msk' undeclared here (not in a function)

   NRF_PWM_INT_SEQEND1_MASK      = PWM_INTENSET_SEQEND1_Msk,      ///<
Interrupt on SEQEND[1] event.

                                   ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:89:37:
error: 'PWM_INTENSET_PWMPERIODEND_Msk' undeclared here (not in a
function)
   NRF_PWM_INT_PWMPERIODEND_MASK = PWM_INTENSET_PWMPERIODEND_Msk, ///<
Interrupt on PWMPERIODEND event.

                                   ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:90:37:
error: 'PWM_INTENSET_LOOPSDONE_Msk' undeclared here (not in a
function)
   NRF_PWM_INT_LOOPSDONE_MASK    = PWM_INTENSET_LOOPSDONE_Msk     ///<
Interrupt on LOOPSDONE event.

                                   ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:98:46:
error: 'PWM_SHORTS_SEQEND0_STOP_Msk' undeclared here (not in a
function)
   NRF_PWM_SHORT_SEQEND0_STOP_MASK        =
PWM_SHORTS_SEQEND0_STOP_Msk,
    ///< Shortcut between SEQEND[0] event and STOP task.

                                            ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:99:46:
error: 'PWM_SHORTS_SEQEND1_STOP_Msk' undeclared here (not in a
function)
   NRF_PWM_SHORT_SEQEND1_STOP_MASK        =
PWM_SHORTS_SEQEND1_STOP_Msk,
    ///< Shortcut between SEQEND[1] event and STOP task.

                                            ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:100:46:
error: 'PWM_SHORTS_LOOPSDONE_SEQSTART0_Msk' undeclared here (not in
a
function)

   NRF_PWM_SHORT_LOOPSDONE_SEQSTART0_MASK =
PWM_SHORTS_LOOPSDONE_SEQSTART0_Msk, ///< Shortcut between LOOPSDONE
event
and SEQSTART[0] task.

                                            ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:101:46:
error: 'PWM_SHORTS_LOOPSDONE_SEQSTART1_Msk' undeclared here (not in
a
function)

   NRF_PWM_SHORT_LOOPSDONE_SEQSTART1_MASK =
PWM_SHORTS_LOOPSDONE_SEQSTART1_Msk, ///< Shortcut between LOOPSDONE
event
and SEQSTART[1] task.

                                            ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:102:46:
error: 'PWM_SHORTS_LOOPSDONE_STOP_Msk' undeclared here (not in a
function)
   NRF_PWM_SHORT_LOOPSDONE_STOP_MASK      =
PWM_SHORTS_LOOPSDONE_STOP_Msk
    ///< Shortcut between LOOPSDONE event and STOP task.

                                            ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:110:32:
error: 'PWM_MODE_UPDOWN_Up' undeclared here (not in a function)

   NRF_PWM_MODE_UP          = PWM_MODE_UPDOWN_Up,        ///< Up
counter
(edge-aligned PWM duty cycle).

                              ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:111:32:
error: 'PWM_MODE_UPDOWN_UpAndDown' undeclared here (not in a
function)
   NRF_PWM_MODE_UP_AND_DOWN = PWM_MODE_UPDOWN_UpAndDown, ///< Up and
down
counter (center-aligned PWM duty cycle).

                              ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:119:26:
error: 'PWM_PRESCALER_PRESCALER_DIV_1' undeclared here (not in a
function)
   NRF_PWM_CLK_16MHz  = PWM_PRESCALER_PRESCALER_DIV_1,  ///< 16 MHz /
1
=
16 MHz.

                        ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:120:26:
error: 'PWM_PRESCALER_PRESCALER_DIV_2' undeclared here (not in a
function)
   NRF_PWM_CLK_8MHz   = PWM_PRESCALER_PRESCALER_DIV_2,  ///< 16 MHz /
2
=
8 MHz.

                        ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:121:26:
error: 'PWM_PRESCALER_PRESCALER_DIV_4' undeclared here (not in a
function)
   NRF_PWM_CLK_4MHz   = PWM_PRESCALER_PRESCALER_DIV_4,  ///< 16 MHz /
4
=
4 MHz.

                        ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:122:26:
error: 'PWM_PRESCALER_PRESCALER_DIV_8' undeclared here (not in a
function)
   NRF_PWM_CLK_2MHz   = PWM_PRESCALER_PRESCALER_DIV_8,  ///< 16 MHz /
8
=
2 MHz.

                        ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:123:26:
error: 'PWM_PRESCALER_PRESCALER_DIV_16' undeclared here (not in a
function)
   NRF_PWM_CLK_1MHz   = PWM_PRESCALER_PRESCALER_DIV_16, ///< 16 MHz /
16
= 1 MHz.

                        ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:124:26:
error: 'PWM_PRESCALER_PRESCALER_DIV_32' undeclared here (not in a
function)
   NRF_PWM_CLK_500kHz = PWM_PRESCALER_PRESCALER_DIV_32, ///< 16 MHz /
32
= 500 kHz.

                        ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:125:26:
error: 'PWM_PRESCALER_PRESCALER_DIV_64' undeclared here (not in a
function)
   NRF_PWM_CLK_250kHz = PWM_PRESCALER_PRESCALER_DIV_64, ///< 16 MHz /
64
= 250 kHz.

                        ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:126:26:
error: 'PWM_PRESCALER_PRESCALER_DIV_128' undeclared here (not in a
function)
   NRF_PWM_CLK_125kHz = PWM_PRESCALER_PRESCALER_DIV_128 ///< 16 MHz /
128
= 125 kHz.

                        ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:137:31:
error: 'PWM_DECODER_LOAD_Common' undeclared here (not in a function)

   NRF_PWM_LOAD_COMMON     = PWM_DECODER_LOAD_Common,     ///< 1st
half
word (16-bit) used in all PWM channels (0-3).

                             ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:138:31:
error: 'PWM_DECODER_LOAD_Grouped' undeclared here (not in a function)

   NRF_PWM_LOAD_GROUPED    = PWM_DECODER_LOAD_Grouped,    ///< 1st
half
word (16-bit) used in channels 0 and 1; 2nd word in channels 2 and 3.

                             ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:139:31:
error: 'PWM_DECODER_LOAD_Individual' undeclared here (not in a
function)
   NRF_PWM_LOAD_INDIVIDUAL = PWM_DECODER_LOAD_Individual, ///< 1st
half
word (16-bit) used in channel 0; 2nd in channel 1; 3rd in channel 2;
4th
in
channel 3.

                             ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:140:31:
error: 'PWM_DECODER_LOAD_WaveForm' undeclared here (not in a
function)
   NRF_PWM_LOAD_WAVE_FORM  = PWM_DECODER_LOAD_WaveForm    ///< 1st
half
word (16-bit) used in channel 0; 2nd in channel 1; ... ; 4th as the
top
value for the pulse generator counter.

                             ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:151:30:
error: 'PWM_DECODER_MODE_RefreshCount' undeclared here (not in a
function)
   NRF_PWM_STEP_AUTO      = PWM_DECODER_MODE_RefreshCount, ///<
Automatically after the current value is played and repeated the
requested
number of times.

                            ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:152:30:
error: 'PWM_DECODER_MODE_NextStep' undeclared here (not in a
function)
   NRF_PWM_STEP_TRIGGERED = PWM_DECODER_MODE_NextStep      ///< When
the
@ref NRF_PWM_TASK_NEXTSTEP task is triggered.

                            ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:255:43:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_task_trigger(NRF_PWM_Type * p_pwm,

                                         ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:266:64:
error: expected ')' before 'const'

__STATIC_INLINE uint32_t nrf_pwm_task_address_get(NRF_PWM_Type
const *
p_pwm,

                                                              ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:275:42:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_event_clear(NRF_PWM_Type * p_pwm,

                                        ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:287:55:
error: expected ')' before 'const'

__STATIC_INLINE bool nrf_pwm_event_check(NRF_PWM_Type const * p_pwm,

                                                     ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:298:65:
error: expected ')' before 'const'

__STATIC_INLINE uint32_t nrf_pwm_event_address_get(NRF_PWM_Type
const
*
p_pwm,

                                                               ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:307:44:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_shorts_enable(NRF_PWM_Type * p_pwm,

                                          ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:316:45:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_shorts_disable(NRF_PWM_Type * p_pwm,

                                           ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:325:41:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_shorts_set(NRF_PWM_Type * p_pwm,

                                       ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:334:41:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_int_enable(NRF_PWM_Type * p_pwm,

                                       ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:343:42:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_int_disable(NRF_PWM_Type * p_pwm,

                                        ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:352:38:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_int_set(NRF_PWM_Type * p_pwm,

                                    ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:364:60:
error: expected ')' before 'const'

__STATIC_INLINE bool nrf_pwm_int_enable_check(NRF_PWM_Type const *
p_pwm,
                                                          ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:372:37:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_enable(NRF_PWM_Type * p_pwm);

                                   ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:379:38:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_disable(NRF_PWM_Type * p_pwm);

                                    ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:391:39:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_pins_set(NRF_PWM_Type * p_pwm,

                                     ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:402:40:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_configure(NRF_PWM_Type * p_pwm,

                                      ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:414:43:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_sequence_set(NRF_PWM_Type * p_pwm,

                                         ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:426:42:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_seq_ptr_set(NRF_PWM_Type * p_pwm,

                                        ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:438:42:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_seq_cnt_set(NRF_PWM_Type * p_pwm,

                                        ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:450:46:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_seq_refresh_set(NRF_PWM_Type * p_pwm,

                                            ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:462:48:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_seq_end_delay_set(NRF_PWM_Type * p_pwm,

                                              ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:474:42:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_decoder_set(NRF_PWM_Type * p_pwm,

                                        ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:488:39:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_loop_set(NRF_PWM_Type * p_pwm,

                                     ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:494:43:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_task_trigger(NRF_PWM_Type * p_pwm,

                                         ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:500:64:
error: expected ')' before 'const'

__STATIC_INLINE uint32_t nrf_pwm_task_address_get(NRF_PWM_Type
const *
p_pwm,

                                                              ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:506:42:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_event_clear(NRF_PWM_Type * p_pwm,

                                        ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:512:55:
error: expected ')' before 'const'

__STATIC_INLINE bool nrf_pwm_event_check(NRF_PWM_Type const * p_pwm,

                                                     ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:518:65:
error: expected ')' before 'const'

__STATIC_INLINE uint32_t nrf_pwm_event_address_get(NRF_PWM_Type
const
*
p_pwm,

                                                               ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:524:44:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_shorts_enable(NRF_PWM_Type * p_pwm,

                                          ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:530:45:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_shorts_disable(NRF_PWM_Type * p_pwm,

                                           ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:536:41:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_shorts_set(NRF_PWM_Type * p_pwm,

                                       ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:542:41:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_int_enable(NRF_PWM_Type * p_pwm,

                                       ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:548:42:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_int_disable(NRF_PWM_Type * p_pwm,

                                        ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:554:38:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_int_set(NRF_PWM_Type * p_pwm,

                                    ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:560:60:
error: expected ')' before 'const'

__STATIC_INLINE bool nrf_pwm_int_enable_check(NRF_PWM_Type const *
p_pwm,
                                                          ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:566:37:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_enable(NRF_PWM_Type * p_pwm)

                                   ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:571:38:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_disable(NRF_PWM_Type * p_pwm)

                                    ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:576:39:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_pins_set(NRF_PWM_Type * p_pwm,

                                     ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:586:40:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_configure(NRF_PWM_Type * p_pwm,

                                      ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:598:43:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_sequence_set(NRF_PWM_Type * p_pwm,

                                         ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:610:42:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_seq_ptr_set(NRF_PWM_Type * p_pwm,

                                        ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:619:42:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_seq_cnt_set(NRF_PWM_Type * p_pwm,

                                        ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:629:46:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_seq_refresh_set(NRF_PWM_Type * p_pwm,

                                            ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:638:48:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_seq_end_delay_set(NRF_PWM_Type * p_pwm,

                                              ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:647:42:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_decoder_set(NRF_PWM_Type * p_pwm,

                                        ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/hal/nrf_pwm.h:655:39:
error: unknown type name 'NRF_PWM_Type'

__STATIC_INLINE void nrf_pwm_loop_set(NRF_PWM_Type * p_pwm,

                                     ^

In file included from
repos/mynewt-nordic/hw/drivers/pwm/pwm_nrf51/src/pwm_nrf51.c:33:0:

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/pwm/nrf_drv_pwm.h:43:5:
error: unknown type name 'NRF_PWM_Type'

   NRF_PWM_Type * p_registers;  ///< Pointer to the structure with PWM
peripheral instance registers.

   ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/pwm/nrf_drv_pwm.h:
In function 'nrf_drv_pwm_step':

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/pwm/nrf_drv_pwm.h:369:5:
error: implicit declaration of function 'nrf_pwm_task_trigger'
[-Werror=implicit-function-declaration]

   nrf_pwm_task_trigger(p_instance->p_registers,
NRF_PWM_TASK_NEXTSTEP);
   ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/pwm/nrf_drv_pwm.h:
In function 'nrf_drv_pwm_sequence_update':

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/pwm/nrf_drv_pwm.h:377:5:
error: implicit declaration of function 'nrf_pwm_sequence_set'
[-Werror=implicit-function-declaration]

   nrf_pwm_sequence_set(p_instance->p_registers, seq_id, p_sequence);

   ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/pwm/nrf_drv_pwm.h:
In function 'nrf_drv_pwm_sequence_values_update':

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/pwm/nrf_drv_pwm.h:385:5:
error: implicit declaration of function 'nrf_pwm_seq_ptr_set'
[-Werror=implicit-function-declaration]

   nrf_pwm_seq_ptr_set(p_instance->p_registers, seq_id,
values.p_raw);
   ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/pwm/nrf_drv_pwm.h:
In function 'nrf_drv_pwm_sequence_length_update':

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/pwm/nrf_drv_pwm.h:393:5:
error: implicit declaration of function 'nrf_pwm_seq_cnt_set'
[-Werror=implicit-function-declaration]

   nrf_pwm_seq_cnt_set(p_instance->p_registers, seq_id, length);

   ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/pwm/nrf_drv_pwm.h:
In function 'nrf_drv_pwm_sequence_repeats_update':

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/pwm/nrf_drv_pwm.h:401:5:
error: implicit declaration of function 'nrf_pwm_seq_refresh_set'
[-Werror=implicit-function-declaration]

   nrf_pwm_seq_refresh_set(p_instance->p_registers, seq_id, repeats);

   ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/pwm/nrf_drv_pwm.h:
In function 'nrf_drv_pwm_sequence_end_delay_update':

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/pwm/nrf_drv_pwm.h:409:5:
error: implicit declaration of function 'nrf_pwm_seq_end_delay_set'
[-Werror=implicit-function-declaration]

   nrf_pwm_seq_end_delay_set(p_instance->p_registers, seq_id,
end_delay);
   ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/pwm/nrf_drv_pwm.h:
In function 'nrf_drv_pwm_task_address_get':

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/pwm/nrf_drv_pwm.h:416:5:
error: implicit declaration of function 'nrf_pwm_task_address_get'
[-Werror=implicit-function-declaration]

   return nrf_pwm_task_address_get(p_instance->p_registers, task);

   ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/pwm/nrf_drv_pwm.h:
In function 'nrf_drv_pwm_event_address_get':

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/pwm/nrf_drv_pwm.h:423:5:
error: implicit declaration of function 'nrf_pwm_event_address_get'
[-Werror=implicit-function-declaration]

   return nrf_pwm_event_address_get(p_instance->p_registers, event);

   ^

In file included from
repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/libraries/util/app_error.h:30:0,
               from
repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/libraries/util/nrf_assert.h:19,
               from
repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/libraries/util/app_util_platform.h:36,
               from
repos/mynewt-nordic/hw/drivers/pwm/pwm_nrf51/src/pwm_nrf51.c:32:

repos/mynewt-nordic/hw/drivers/pwm/pwm_nrf51/src/pwm_nrf51.c: At top
level:
repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/drivers_nrf/pwm/nrf_drv_pwm.h:52:30:
error: 'NRF_PWM0' undeclared here (not in a function)

   .p_registers  = CONCAT_2(NRF_PWM, id),              \

                            ^

repos/mynewt-nordic/hw/mcu/nordic_sdk/src/ext/nRF5_SDK_
11.0.0_89a8197/components/libraries/util/nordic_common.h:44:31:
note: in definition of macro 'CONCAT_2'

#define CONCAT_2(p1, p2)      p1##p2

                             ^

repos/mynewt-nordic/hw/drivers/pwm/pwm_nrf51/src/pwm_nrf51.c:41:31:
note:
in expansion of macro 'NRF_DRV_PWM_INSTANCE'

static nrf_drv_pwm_t m_pwm0 = NRF_DRV_PWM_INSTANCE(0);

                             ^

cc1: all warnings being treated as errors






Reply via email to