Embedded Systems und Firmware

Ein 16-MHz-Takt wird per Prescaler durch 16 geteilt, ein Timer zählt damit, und alle 1000 Zählschritte wird ein Interrupt ausgelöst. Wie groß ist das Interrupt-Intervall?

  1. A1 µs
  2. B1 ms
  3. C16 ms
Antwort und Erläuterung anzeigen

Antwort: B. 1 ms

16 MHz durch 16 ergibt einen Timertakt von 1 MHz, ein Zählschritt dauert 1 µs. Bei 1000 Zählschritten beträgt das Intervall 1 µs × 1000 = 1 ms. Der Prescaler teilt einen zu schnellen Takt herunter, sodass er in den vom Timer zählbaren Bereich passt. Interrupts im 1-ms-Takt werden häufig für Zeitverwaltung, das Einlesen von Schaltern und den Zeittakt eines RTOS verwendet.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Embedded Systems und Firmware

  1. Bei einem PWM-Signal mit einer Periode von 1000 Zählschritten ist der Ausgang nur 250 Zählschritte der Periode auf 1 (High). Wie groß ist das Tastverhältnis?
  2. Welche Methode wird bei Mikrocontrollern häufig verwendet, um die Helligkeit einer LED oder die Drehzahl eines Motors einzustellen?
  3. Wozu dient die Input-Capture-Funktion eines Mikrocontroller-Timers?
  4. Was sollte in einem Interrupt-Handler am ehesten vermieden werden?
  5. Beim Kompilieren des obigen Programms mit aktivierter Optimierung wird led_on() mitunter auch dann nicht aufgerufen, wenn ein Timer-Interrupt auftritt. Welche Kombination aus Ursache und Gegenmaßnahme ist korrekt?

Vergleiche zu diesem Thema