Embedded Systems und Firmware

Wozu dient die Input-Capture-Funktion eines Mikrocontroller-Timers?

  1. AEin Bildschirmbild erfassen und speichern
  2. BDen Zählerwert im Moment einer Eingangssignaländerung aufzeichnen und so Pulsbreite und Frequenz genau messen
  3. CEin PWM-Signal an einem Ausgangspin ausgeben
Antwort und Erläuterung anzeigen

Antwort: B. Den Zählerwert im Moment einer Eingangssignaländerung aufzeichnen und so Pulsbreite und Frequenz genau messen

Bei Input Capture kopiert die Hardware den Zählerstand des Timers in ein Register, sobald das Signal am Eingangspin steigt oder fällt. Aus der Differenz der Werte zweier Änderungen ergeben sich Pulsbreite und Periode. Würde man erst nach Empfang eines Interrupts per Software die Zeit lesen, entstünden Fehler durch Verarbeitungsverzögerung; so wird unabhängig von der Verzögerung genau gemessen. Anwendungen sind Drehzahlsensoren und Ultraschall-Entfernungsmesser.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Embedded Systems und Firmware

  1. Was sollte in einem Interrupt-Handler am ehesten vermieden werden?
  2. 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?
  3. Bei einem 8-Bit-Mikrocontroller erhöht ein Timer-Interrupt die 32-Bit-Variable ticks um 1, und das Hauptprogramm liest ticks, um die verstrichene Zeit zu bestimmen. Was ist die richtige Ursache dafür, dass mitunter stark abweichende Werte gelesen werden?
  4. Welche Aussage zur seriellen Kommunikation per UART ist korrekt?
  5. Wie viele Bytes pro Sekunde lassen sich bei einem UART mit 115200 bps im Format 8 Datenbits, keine Parität, 1 Stoppbit (8N1) ungefähr senden?

Vergleiche zu diesem Thema