Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
systick.cpp@0:7a97ebb833eb, 2019-05-05 (annotated)
- Committer:
- rzalog
- Date:
- Sun May 05 00:02:11 2019 +0000
- Revision:
- 0:7a97ebb833eb
test commit;
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| rzalog | 0:7a97ebb833eb | 1 | #include "systick.h" |
| rzalog | 0:7a97ebb833eb | 2 | #include "mbed.h" |
| rzalog | 0:7a97ebb833eb | 3 | #include "globals.h" |
| rzalog | 0:7a97ebb833eb | 4 | |
| rzalog | 0:7a97ebb833eb | 5 | void systickFunction() { |
| rzalog | 0:7a97ebb833eb | 6 | // Update global counter |
| rzalog | 0:7a97ebb833eb | 7 | millis++; |
| rzalog | 0:7a97ebb833eb | 8 | mainController.update(); |
| rzalog | 0:7a97ebb833eb | 9 | |
| rzalog | 0:7a97ebb833eb | 10 | // Update other sensors |
| rzalog | 0:7a97ebb833eb | 11 | ir.update(); |
| rzalog | 0:7a97ebb833eb | 12 | } |
| rzalog | 0:7a97ebb833eb | 13 | |
| rzalog | 0:7a97ebb833eb | 14 | void Systick::start() { |
| rzalog | 0:7a97ebb833eb | 15 | m_systicker.attach(&systickFunction, SYS_TICK_TIME); |
| rzalog | 0:7a97ebb833eb | 16 | } |
| rzalog | 0:7a97ebb833eb | 17 | |
| rzalog | 0:7a97ebb833eb | 18 | void Systick::stop() { |
| rzalog | 0:7a97ebb833eb | 19 | m_systicker.detach(); |
| rzalog | 0:7a97ebb833eb | 20 | } |
| rzalog | 0:7a97ebb833eb | 21 | |
| rzalog | 0:7a97ebb833eb | 22 | Systick::Systick() { |
| rzalog | 0:7a97ebb833eb | 23 | // A little bit of magic; if you want to know why, ask Robert |
| rzalog | 0:7a97ebb833eb | 24 | NVIC_SetPriority(TIM5_IRQn, 255); |
| rzalog | 0:7a97ebb833eb | 25 | } |
| rzalog | 0:7a97ebb833eb | 26 | |
| rzalog | 0:7a97ebb833eb | 27 | void Systick::wait(float sec) { |
| rzalog | 0:7a97ebb833eb | 28 | // Utility function: allows you to wait while using systick. |
| rzalog | 0:7a97ebb833eb | 29 | int init = millis; |
| rzalog | 0:7a97ebb833eb | 30 | |
| rzalog | 0:7a97ebb833eb | 31 | float num_ticks = sec / SYS_TICK_TIME; |
| rzalog | 0:7a97ebb833eb | 32 | |
| rzalog | 0:7a97ebb833eb | 33 | while (millis - init < num_ticks) |
| rzalog | 0:7a97ebb833eb | 34 | ; |
| rzalog | 0:7a97ebb833eb | 35 | } |