Add an example using the RTC to help with a lower power design. This is
a sister example to the existing "button-irq-printf", which is
functionally identical, but uses far less power.
There's more tricks that can be done to lower the power even further,
but this shows a few of the early steps that can be done, using the RTC
wakeup instead of a timer.
Where the library is installed has quite an affect on what -L and -I
flags are used. If you install into the toolchain, you don't want
to use them at all, but if you install out of tree (/opt/mycm3 for
example) you need to specify the -L and -I flags.
Update the documentation and the example makefiles to support this
the only change this results in in the example binaries is in the
hackrf-jellybean/systick example, where the the check in
systick_set_clocksource for overflowing from the stm32 area gets used.
these register definitions are common to all cortex mcus. some of the
registers might not be implemented everywhere (especially the floating
point registers), but defining them does no harm.
this modification does not result in any changes in the example
binaries.
* simple polling of an injected channel
* timer triggered sampling of an injected channel
* timer triggered sampling and IRQ handling of an injected channel
* timer triggered sampling and IRQ handling of 4 injected channels
remove rcc_set_adc_clk - use rcc version
Added functions:
- adc_power_on
- adc_start_conversion_direct
- adc_set_dual_mode
- adc_eoc
- adc_eoc_injected
- adc_read_regular
- adc_read_injected
- adc_set_injected_offset
Tested dual mode scanned regular, but no tests of injected yet.
Changes: "discontinuous" was misspelled.
- adc_set_discontinuous_mode_regular - added "length" parameter
- adc_disable_discontinuous_mode_regular - name change
- adc_enable_discontinuous_mode_injected - name change
- adc_enable_automatic_injected_group_conversion - disable triggers
- adc_enable_jeoc_interrupt - name change to match common usage in lib
- adc_disable_jeoc_interrupt - ditto
- adc_enable_external_trigger_regular - remove incorrect test on parameter
- adc_enable_external_trigger_injected - ditto
- adc_set_sample_time - name change to match function's purpose
- adc_set_conversion_time_on_all_channels - ditto
- adc_set_injected_sequence - changed order of register loading (ref Barlow's issue)
- adc_enable_analog_watchdog_on_all_channels - flipped AWDSGL
- adc_enable_analog_watchdog_on_selected_channel - ditto
added aliases for expected commonly used functions to avoid sudden user code breakage
In adc.h, corrected errors in SQR names
added "deprecated" compiler warnings to adc_on and to aliases defined in adc.c
If an example is in the libopencm3 source directory it will use the
locally built library instead of the system library.
When you copy an example out of the libopencm3 tree it will
automatically detect it and build using the system wide installation.
- The library files are now being built into the lib subdirectory of the
source.
- The linker files for each library are being copied into the lib source
subdirectory.
Motivation: The relative locations of files in the source directory after make
are now the same as after make install now. This makes it easier to
reuse examples with their makefiles outside of the libopencm3
sourcecode directory.
This is needed even in plain C when 64 bit variable (e.g. long long int)
arithmetic is used. For example it is required when newlib is compiled with
--enable-newlib-io-long-long.
Conflicts:
lib/stm32/f1/libopencm3_stm32f1.ld
lib/stm32/f2/libopencm3_stm32f2.ld