-         

Ergebnis 1 bis 5 von 5

Thema: 8051 Timer frage

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    03.11.2004
    Beiträge
    370

    8051 Timer frage

    Anzeige

    Hallo,

    mal ne frage zu den 8051ern: ist es richtig, das sie nur einen 8 bit timer haben, und somit timer im sekundenbereich nur durch zusätzliche zählervariablen machbar sind? oder nehm ich (ich habe einen baustein mit & gliedern) lieber ne externe takterzeugung wenns nicht auf genauigkeit ankommt?

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.03.2005
    Ort
    Nürnberg
    Alter
    37
    Beiträge
    118
    Jein.
    Der ursprüngliche 8051 hat zwei 16-bit Timer.
    Bei größeren Zeitspannen benutzt man aber für gewönlich einen Timer als
    Zeitbasis. Dazu konfiguriert man ihn auf den Auto-reload-Modus. In diesem
    Modus arbeitet er als 8-bit Timer, wird aber bei jedem Überlauf automatisch
    nachgeladen. Durch zusätzliche Zählvariablen kann man die gemessene Zeit
    abbilden.
    Neuere 8051 Derivate haben meist noch einen dritten Timer. Dieser kann
    auch als 16-bit Timer im Auto-reload-Modus arbeiten.
    Einen externen Tackt würde ich nicht zuführen. Dadurch wird nur die
    Schaltung vergrößert. Der Controller hat genug RAM um einige register als
    Zähler opfern zu können.

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    03.11.2004
    Beiträge
    370
    danke für die antwort. ich habe noch nichts näheres zu den MODES gefunden mode=2 ist auto reload (8bit) aber was ist mode=1 und mode=3

    wenn 16bit nicht autoreload ist, dann muss ich doch nur nochmal load timer in der timer routine verwenden.

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.03.2005
    Ort
    Nürnberg
    Alter
    37
    Beiträge
    118
    Mode0: 8-bit Timer mit 5-bit Vorteiler.
    Den Modus kannst du gleich wieder vergessen. Das ist ein Relikt aus dem 8048.

    Mode1: 16-bit Timer

    Mode2: 8-bit Auto-reloade

    Mode3: Timer0 wird in zwei 8-bit Timer geteilt. Dies beeinflusst aber Timer1 da dessen Kontrollbits benutzt werden.

    Du kannst natürlich den Timer auch im 16-bit Modus benutzen und im Timerinterupt selbst mit einem Wert nachladen. Ist hohe Genauigkeit gefragt solltest du aber die reaktionszeit des Interupts berücksichtigen. Diese ist nicht immer gleich lang. Läuft der Timer über zählt er einfach wieder von 0 an weiter. Dadurch steht die Reaktionszeit im Timer. Diese Zeit und die Zeit die benötigt wird den Timer zu beschreiben musst du auf den gewünschten Reloadwert addieren.

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    03.11.2004
    Beiträge
    370
    Danke. Hat mir seeehr geholfen. So zeitkritisch ist die anwendung nicht.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •