2 releases
0.1.1 | Sep 15, 2020 |
---|---|
0.1.0 | Sep 15, 2020 |
#954 in Embedded development
9KB
120 lines
aevum
A CLI utility to calculate timer register values for STM32 microcontrollers. Given the desired length of the timer, aevum will calculate and spit out the prescaler and auto-reload register values.
Usage
Run aevum with ./aevum --help
for more information.
When using aevum, you must always provide the desired period of time to run the timer. By default the units are in seconds. The program assumes that the prescaler and auto-reload registers are both 16-bit.
Options
-h, --help
: Display help information-c, --clock
: Specify the timer clock speed-u, --microseconds
: Sets the desired time period to microseconds-m, --milliseconds
: Sets the desired time period to milliseconds-s, --seconds
: Sets the desired time period to seconds (default)-r, --results
: Sets the number of results to calculate before exiting
Examples
Sets a search for a 10 second timer with a 16MHz timer clock
aevum 10 -c 16000000
Sets a search for 20 milliseconds with a 8MHz timer clock
aevum 20 -m -c 8000000
Sets a search for 10 microseconds with the default clock value and only calculates the first 2 matches
aevum 10 -u -r 2
Installation
Precompiled binaries are not yet available. You can compile the project from source if your machine has Rust.
$ git clone https://github.com/dylanwishner/aevum.git
$ cd aevum
$ cargo build
To-do List
- Support alternative time units (milliseconds, microseconds, etc.)
- Specify how many possibilities to calculate (or only output first match to reduce run time)
- Allow the default parameters to be changed in case you frequently work with the same MCU
- Better integer parsing to allow for 8,000,000 or 8_000_000 style integers
- Handle cases where the values exceed the 16-bit maximum (using clock dividers)
Dependencies
~1.5MB
~24K SLoC