Kapitel 8: System Tick Timer

In Kapitel 5 habe ich in den Beispielen die Funktion delayMillis(uint16_t delay) verwendet und dabei auch erwähnt, dass dies eine sehr schlechte Methode ist, Delays zu erzeugen. Schauen wir uns zur Verdeutlichung noch einmal die Implementierung an:

 1  void delayMillis (uint16_t delay)
 2  {
 3      uint16_t i = 0;
 4  
 5      for (; delay > 0; --delay)
 6      {
 7          for (i = 0; i < 1245; ++i)
 8          {
 9              ;
10          }
11      }
12  }

Listing 8.1: Sehr schlechte Methode für ein Delay

Sie fragen sich jetzt möglicherweise, was an dieser Methode schlecht ist: Schließlich findet man beispielsweise in vielen Internet-Tutorials – und leider auch in einigen Fachbüchern – immer wieder diese Art der Implementierung. Und: Sie funktioniert doch, wie ...

Get STM32 -- ARM-Microcontroller programmieren für Embedded Systems - Das umfassende Praxisbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.